所以,我正在创建一个简单的 2D 视频游戏。我最近注意到播放器可以移出屏幕,所以我添加了以下代码:
if (newX <= SIZE * TagsCanvas.SCALE) {
newX = SIZE * TagsCanvas.SCALE;
} else if (newX >= TagsCanvas.CANVAS_WIDTH - (SIZE * TagsCanvas.SCALE) - getAABB().getRadX()) {
newX = TagsCanvas.CANVAS_WIDTH - (SIZE * TagsCanvas.SCALE) - getAABB().getRadX();
}
if (newY <= SIZE * TagsCanvas.SCALE) {
newY = SIZE * TagsCanvas.SCALE;
} else if (newY >= TagsCanvas.CANVAS_HEIGHT - (SIZE * TagsCanvas.SCALE) - getAABB().getRadY()) {
newY = TagsCanvas.CANVAS_HEIGHT - (SIZE * TagsCanvas.SCALE) - getAABB().getRadY();
}
TagsCanvas.CANVAS_WIDTH
是画布对象的宽度。高度是画布对象的高度。Size 是玩家的大小,scale 是游戏的规模(目前是 2)。 getAABB().getRadX()
返回从播放器中心到边缘的半径(“播放器”是一个方形框)。
现在,x 工作正常,但 Y 部分不行。它会阻止玩家向上移动离开地图(第一条语句),但它会让玩家向下移动大约 20 点。任何帮助,将不胜感激!