游戏逻辑 - 在经过障碍物后仅添加一次得分

时间:2016-10-05 18:13:56

标签: java logic

我正在创建一个游戏,其得分系统与Flappy Bird中的得分系统类似。

if you didn't get it

当玩家成功通过右侧和左侧时 障碍我希望我的得分变量增加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()之后获得第二个点。

你会如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

只需创建一个“obstacle.over”布尔值,以便每个都有自己的状态。