我正在创建一个游戏,其得分系统与Flappy Bird中的得分系统类似。
当玩家成功通过右侧和左侧时 障碍我希望我的得分变量增加1.但我不知道它背后的逻辑。
现在我有(这是在for循环中检查更新方法中的每个障碍):
'over'确保分数仅增加1。
if (bird.getPosition().y > obstacle.getPosLeft().y) {
if (!over) {
over = true;
score++;
}
当障碍物离开屏幕时(是的,底部的y为0,而不是顶部):
if (obstacle.getPosLeft().y + Obstacle.OBSTACLE_HEIGHT < 0){
obstacle.reposition(obstacle.getPosLeft().y + (OBSTACLE_SPACING + Obstacle.OBSTACLE_HEIGHT)* OBSTACLE_COUNT);
over = false;
}
问题是你可以在第一个障碍物对重新定位之前传递2个障碍物对,这意味着你只能在为障碍物1调用reposition()
之后获得第二个点。
你会如何解决这个问题?
答案 0 :(得分:0)
只需创建一个“obstacle.over”布尔值,以便每个都有自己的状态。