2016-07-14 5 views
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); 
} 

私の問題はこれです:私はこのアニメーションを実行しようとすると、以前のフレームからアーティファクトを得続けます。私は一般的に配列を使って練習しようとしているので、配列を使ってアニメーションに画像を保存しています。処理スケッチで視覚的なアーティファクトを取り除くことができません

アニメーションが点滅眼球のです。問題は、前のフレームがすべて点滅している場合です。眼球の虹彩は消え、眼球は前のフレームからアーチファクトを収集し始める。

+1

使用している画像を教えてください。また、 'draw()'関数で画像を読み込んではいけません。代わりに 'setup()'関数からそれらをロードしてください。 –

答えて

1

ケビンから指摘されているように、draw()で1秒に何度も何度も画像を繰り返し読み込まないでください。 setup()に1回ロードしてから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); 
} 
+0

だから私はそれを理解した。バックグラウンドはセットアップでのみ使用されていて、引き継がれていました。しかし、アレイのヒントをありがとう。 –

関連する問題