通过碰撞检测增量获得游戏分数



所以我有一个游戏,如果我的用户与图像碰撞,它会将分数增加1。然而,因为我使用这种碰撞检测方法和if语句来增加我的分数,所以在碰撞的持续时间内,分数将增加大约30,因为碰撞方法检测到它们在经过时多次碰撞。我该如何阻止它每次增加一个以上。这是我的代码:

void draw () {  
if (gameMode == Active) {
if(crash() == false) {
drawBackground();
textSize(32);
fill(22,100,8);
text("Score: " + score ,20,40); //calls the drawBackground method
alien1.update();
alien2.update();  //constantly calls the move and render method for the alien and defender
alien3.update();
user1.render();
Burger.update();
if(Bcrash() == true) {
if(Bcrash() == false) {
score = score + 1; 
}
}
} else {
gameMode = End;
textSize(32);
fill(22,100,8);
text("Game Over, press 'r' to restart",150,200);
}  
}
}
boolean Bcrash() {
return user1.crash(Burger));
}
// Burger.class (Editor's note: I guess it's User.class)
public class User {
boolean crash(Burger A) {   
return(abs(x-A.x)<=30) && abs(y-A.y)<=30;
}
}

在允许添加另一个数字之前,请检查碰撞是否为false。

类似于:

Boolean collisionInProgress = false;
if(collision == true && collisionInProgress == false){
score = score+1;
collisionInProgess = true;
}
…loop…
if(collision == false){
collisionInProgess = false;
}

最新更新