我正在使用Java编写一个像炸弹人一样的2D图块游戏(我的第一个游戏)。 我使用2D数组表示地图,其中我跟踪墙壁、可走空间等。到目前为止,我已经能够使玩家平滑移动,并根据他按下的方向键交换精灵(但不与背景/地图交互,可以随意走动并走出屏幕)。
当我想要跟踪玩家在数组中的位置时,我的问题出现了。逻辑上,角色始终只属于一个图块,但在图形上可能位于两个图块之间。我该如何解决这个问题?
我已经尝试过下面的方法: currentTileArrayX = x / tileWidth; currentTileArrayY = y / tileHeight; 其中x和y是精灵左上角的坐标。但由于玩家的精灵大小与图块不同,所以一切都变得非常混乱。
我心目中已经有另一个选项可以解决上一个问题:当玩家按下方向键时,将角色移动到下一个图块,就像进行动画一样。这不会让玩家停在两个图块的中间...但如果他用另一个按键打断它怎么办?我该如何在执行动画时停止用户的操作?我认为这是最简单的解决方案,但我不知道如何实现它。
我已经尝试在其他问题中寻找解决方案,但没有成功。希望您能帮助我,非常感谢!
当我想要跟踪玩家在数组中的位置时,我的问题出现了。逻辑上,角色始终只属于一个图块,但在图形上可能位于两个图块之间。我该如何解决这个问题?
我已经尝试过下面的方法: currentTileArrayX = x / tileWidth; currentTileArrayY = y / tileHeight; 其中x和y是精灵左上角的坐标。但由于玩家的精灵大小与图块不同,所以一切都变得非常混乱。
我心目中已经有另一个选项可以解决上一个问题:当玩家按下方向键时,将角色移动到下一个图块,就像进行动画一样。这不会让玩家停在两个图块的中间...但如果他用另一个按键打断它怎么办?我该如何在执行动画时停止用户的操作?我认为这是最简单的解决方案,但我不知道如何实现它。
我已经尝试在其他问题中寻找解决方案,但没有成功。希望您能帮助我,非常感谢!