processingjs мерцание при рисовании более одного объекта - PullRequest
1 голос
/ 26 марта 2011

В процессе обработки у меня возникли проблемы. Код, который я написал, работает, но только для одного круга. Если есть два или более кругов, они начинают мерцать (полагаю, это из-за медленной частоты обновления background ()). Есть ли что-то, что я делаю неправильно в своем коде (опубликовано ниже), или это всего лишь ограничение скорости обработки?

Я уверен, что должен быть способ добиться того же эффекта без задержки. Я видел больше сделанного в обработке с меньшим отставанием.

Кроме того, когда два круга перекрываются, они также начинают мигать (примерно вдвое больше). есть ли способ это исправить?

мой код:


    int count;
    int[] circles;
    int numCircles;
    int color, color1, color2;
    void setup()
    {
    size($(document.body).width(),600);
    smooth();
    numCircles = 1;
    color = random(0,200);
    color1 = random(0, 200);
    color2 = random(0, 200);
    strokeWeight( 10 );<br>
     frameRate( 60 );</p>

<pre><code>count = 0;
circles = new int[numCircles*4];
for(int x = 0; x<circles.length; x+=4)
{
    circles[x]=random(0,width);
    circles[x+1]=random(0,height);
    if(random(0,1)==0)
    {
     circles[x+2] = 1;
    }
    else
    {
     circles[x+2] = -1;
    }
    if(random(0,1)==0)
    {
     circles[x+3] = 1;
    }
    else
    {
     circles[x+3] = -1;
    }

}


}



void draw()
{


background(255);
fill(255);
stroke(color, color1, color2);

ellipse(circles[count], circles[count+1], 500, 500);
if(abs(circles[count]-width)<=10)
{circles[count+2]=-abs(circles[count+2])}
if(abs(circles[count+1]-height)<=10)
{circles[count+3]=-abs(circles[count+3])}

if(circles[count]<=10)
{
 circles[count+2] = abs(circles[count+2]);
}
if(circles[count+1]<=10)
{
 circles[count+3] = abs(circles[count+3]);
}
circles[count]+=circles[count+2];
circles[count+1]+=circles[count+3];

count+=4;
if(count>circles.length-4)
{count = 0;

}

}

1 Ответ

0 голосов
/ 26 марта 2011

Я понял, что я делаю неправильно

, перебрав каждый круг в функции рисования с помощью цикла for, я обнаружил, что смог обновить местоположение каждого круга без задержки между итерациямиФункция draw (), которая вызвала мерцание.

...