我正在创建一个得分系统类似于《飞扬的小鸟》的游戏。
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”即可,使每个对象都有自己的状态。