2017-04-11 77 views
0
int objectX = width/2; 
int objectY = 200; 
int snelheidY = 1; 
int score = 0; 
int richting = 1; 
int positiebal; 
int bal = ellipse(objectX, objectY, 50, 50); 

void setup() 
{ 
size(400, 400); 
positiebal = height/2 
textSize(12); 
} 


void draw() { 
background(0, 0, 0); 

ellipse(positiebal, objectY, 50, 50); 

if(objectY > 375) 
snelheidY = -snelheidY; 

if(objectY<25) 
snelheidY = -snelheidY 

objectY = objectY + snelheidY; 

text("score = " +score,4,10); 

} 

void mousePressed() 
{ 

if (dist(mouseX, mouseY, positiebal, 200)<=200) 
{score=score+1; 
snelheidY = snelheidY+1 
} 
} 

「」 「」 「」 「」 「」 「」 「」 「」 「」 「」 「」 「」 「」處理JS斌分數和加速器

我有以下問題: 1.球在下降時被加速,但球在上升時似乎不起作用。 2.當球被按下時,得分系統只應該上升,但它不會這樣做。

有人可以進一步瞭解請解釋以下問題嗎?

回答

0

當球在下降時,球被加速,但在球升起時似乎不起作用。

您發佈的代碼加速球向下每當你按下鼠標。這發生在這一行:

snelheidY = snelheidY+1; 

如果球向上移動,然後加速向下看起來像減速,直到它停止。如果你繼續按下,它會轉向下去。

如果你想讓球向着它的方向加速,那麼你將不得不在這裏添加一些邏輯。也許可以使用if聲明來檢查球的走向,或者使用乘法而不是加法。

當球被按下時,得分系統只應該上升,但它不會這樣做。

你的代碼沒有檢查。只要用戶按下鼠標,只要光標距離球200個像素,就總是增加分數。如果你想檢查鼠標是否在球內,你應該使用球的半徑而不是200.

你也應該真的養成debugging你的程序的習慣。很難回答一般的「我該怎麼做」類型的問題。如果你嘗試一些東西,編寫一些代碼,然後詢問一些不正確的代碼,這會容易得多。