gpt4 book ai didi

java - 处理:尝试使用图像数组创建定格动画

转载 作者:行者123 更新时间:2023-12-01 12:09:12 25 4
gpt4 key购买 nike

我正在尝试使用 19 个图像在处理过程中创建定格动画。它显示的唯一图像是数组中的最后一个图像,然后我认为这一定是因为它会在一秒钟内加载所有 19 个图像的帧速率,所以我尝试将帧速率设置为“1”,但没有成功。然后我添加了一个 if 语句来告诉计数器重新开始并重复动画。非常感谢任何帮助。

PImage[] images = new PImage[20];

void setup() {
size(280, 120);

for ( int i = 0; i < images.length; i++ )
{
images[i] = loadImage(i + ".jpg" );
}
}

void draw() {
frameRate(1);
for (int i = 0; i < images.length; i++)
{
image(images[i], 0, 0);
if (i == images.length-1) {
i = 0;
}
}
}

最佳答案

处理中draw()frameRate() 中指定的帧速率调用调用,只需要在你的 setup() 中调用一次方法。在您的代码中,来自 i=0整个循环images.length 完整在每次绘制调用中运行。因此,您只能看到每draw()之后的最后一张图像。 .

相反,在绘制方法之外为要显示的图像编号创建一个全局变量,并在绘制方法中递增它,如下所示:

PImage[] images = new PImage[20];
int frameNum = 0;

void setup() {
size(280, 120);

for ( int i = 0; i < images.length; i++ ) {
images[i] = loadImage(i + ".jpg" );
}

frameRate(30);
}

void draw() {

frameNum++;
frameNum %= images.length;
image(images[frameNum], 0, 0);
}

说明

  • 首次运行处理草图时,int frameNum设置为 0。
  • draw()每帧调用一次,每次调用时我们都会递增 frameNum .
  • 然后我们确保 frameNum当 > images.length 时设置为 0与 frameNum %= images.length

关于java - 处理:尝试使用图像数组创建定格动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27368365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com