0
int numFrames = 5; //Number of animation frames
int frame = 0;
PImage[] images = new PImage[numFrames]; //Image array

void setup() 
{
    size(800, 800);
    background(180, 180, 180);
    frameRate(15); //Maximum 30 frames per second 
}

void draw() 
{
    images[0] = loadImage("Ayylmfao.0001.png");
    images[1] = loadImage("Ayylmfao.0002.png");
    images[2] = loadImage("Ayylmfao.0003.png");
    images[3] = loadImage("Ayylmfao.0004.png");
    images[4] = loadImage("Ayylmfao.0005.png");
    frame++;
        if (frame == numFrames) 
        {
            frame = 0;
        }

    image(images[frame], 0, 0);
}

したがって、私の問題は次のとおりです。このアニメーションを実行しようとすると、前のフレームからアーティファクトが発生し続けます。一般的に配列を使用して練習しようとしているため、アニメーションに画像を格納するために配列を使用しています。

まばたきする眼球のアニメーションです。問題は、点滅すると、前のフレームがすべて上書きされることです。眼球の虹彩が消え、眼球は前のフレームからアーティファクトを収集し始めます。

4

1 に答える 1

1

ケビンが指摘しているように、画像を 1 秒あたり複数回、何度もロードしないでくださいdraw()。で一度ロードしてsetup()から、でレンダリングする必要がありますdraw()

int numFrames = 5; //Number of animation frames
int frame = 0;
PImage[] images = new PImage[numFrames]; //Image array

void setup() 
{
    size(800, 800);
    background(180, 180, 180);
    frameRate(15); //Maximum 30 frames per second 
    images[0] = loadImage("Ayylmfao.0001.png");
    images[1] = loadImage("Ayylmfao.0002.png");
    images[2] = loadImage("Ayylmfao.0003.png");
    images[3] = loadImage("Ayylmfao.0004.png");
    images[4] = loadImage("Ayylmfao.0005.png");
}

void draw() 
{

    frame++;
        if (frame == numFrames) 
        {
            frame = 0;
        }

    image(images[frame], 0, 0);
}
于 2016-07-14T20:40:42.843 に答える