2015-01-13 28 views
0

我有一個代碼,在鼠標按下時,它將顯示圍繞圓移動的圓。在每個框架中顯示不同的形狀(處理)

我想這會自動發生ie ie。

frame no。 1顯示圈號。 1 frame no。圖2顯示了圈號。 2 ... frame no。圖8顯示了圈號。 8 frame no。圖9顯示了圈號。 1

非常感謝。

這是我的代碼。

int value = 0; 
void setup() { 
    size (600, 600); 
} 

void draw() { 
    if (value == 0) { 
    background(255, 255, 255); 
    } else if (value == 1) { 
     background(255, 255, 255); 
    fill (0); 
    ellipse (300, 190, 20, 20);//1 
    } else if (value == 2) { 
     background(255, 255, 255); 
    fill (0); 
    ellipse (378, 222, 20, 20); 
    } else if (value == 3) { 
     background(255, 255, 255); 
    fill (0); 
    ellipse (410, 300, 20, 20); 
    } else if (value == 4) { 
     background(255, 255, 255); 
    fill (0); 
    ellipse (378, 378, 20, 20); 
    } else if (value == 5) { 
     background(255, 255, 255); 
    fill (0); 
    ellipse (300, 410, 20, 20); 
    } else if (value == 6) { 
     background(255, 255, 255); 
    fill (0); 
    ellipse (222, 378, 20, 20); 
    } else if (value == 7) { 
     background(255, 255, 255); 
    fill (0); 
     ellipse (190, 300, 20, 20); 
    } else if (value == 8) { 
     background(255, 255, 255); 
    fill (0); 
    ellipse (222, 222, 20, 20); //8 circles 
    } 
} 



void mousePressed() { 
    if (mouseButton == LEFT) { 
    value = value + 1; 
    } else if (mouseButton == RIGHT) { 
    value = value - 1; 
    } 

    if (value > 8) { 
    value = 1; 
    } 
    if (value < 1) { 
    value = 8; 
    } 
} 
+0

你是什麼意思的框架? – Junaid

+0

@ junaid 與幀速率一樣。 我想證明加快幀頻最終會使出現的圓圈看起來像一條實線。 –

+0

像你想要什麼?請詳細說明,並更新問題。謝謝 – Junaid

回答

1

這是如何可以循環許多不同的幀:

int loopLength = 8; 
void setup() { 
    size (600, 600); 
} 

void draw() { 
    background(255, 255, 255); 
    fill (0); 
    switch (frameCount % loopLength) { 
    case 0: 
    ellipse (300, 190, 20, 20); 
    break; 
    case 1: 
    ellipse (378, 222, 20, 20); 
    break; 
    case 2: 
    ellipse (410, 300, 20, 20); 
    break; 
    case 3: 
    ellipse (378, 378, 20, 20); 
    break; 
    case 4: 
    ellipse (300, 410, 20, 20); 
    break; 
    case 5: 
    ellipse (222, 378, 20, 20); 
    break; 
    case 6: 
    ellipse (190, 300, 20, 20); 
    break; 
    case 7: 
    ellipse (222, 222, 20, 20); 
    break; 
    } 
} 

各幀的共用碼(呼叫背景和填充)開關之前發生()。它運行的方式是每一幀。

您可以使用大量的if()語句而不是開關,但這看起來更乾淨。

使用開關時,您不需要包括每種情況。如果你想要空白幀,你可以刪除一個或多個案例。

如果您的循環長度爲8,並且您使用的範圍超出了0-7範圍(比如33),那麼這些情況將不會運行。

每個案件必須以中止結束。缺少中斷時,還會評估下一個案例的代碼。