我正在创建一个得分系统类似于《飞扬的小鸟》的游戏。

if you didn't get it

当玩家成功通过左右时
我希望我的分数变量增加1的障碍,但是我不知道其背后的逻辑。

现在我有(这在for循环中,检查更新方法中的每个障碍):

确保分数仅增加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()之后,您只能获得第二个障碍物。

您将如何解决此问题?

最佳答案

只需将布尔值设为“ obstacle.over”即可,使每个对象都有自己的状态。

10-06 15:37