我有一个游戏开始我已经制作,基本上是一个椭圆形,我可以用键盘键箭头移动它。
我不想让它退出框架,所以我检查X是否小于0,如果高于宽度返回则返回,对于y也是如此。
但它不适用于<宽度和>高度,我可以向右和向下直到它离开框架,为什么?
这是代码,(我没有使用myHeight,myWidth我手动放大小,大小是765,500)。
public void movePlayer(int x, int y) {
System.out.println(myPlayer.getX());
if (x == 0) {
if (y + myPlayer.getY() > 500 || y + myPlayer.getY() < 0) {
return;
}
this.myPlayer.moveY(y);
}
else if (y == 0) {
if (x + myPlayer.getX() > 765 || x + myPlayer.getX() < 0) {
return;
}
this.myPlayer.moveX(x);
}
}
为什么会这样?
答案 0 :(得分:1)
嗯,你正在检查的点(你的x和y)代表椭圆形的左上角。检查底部时必须添加高度,并在检查右边时添加宽度。
if (y + myPlayer.getY() + myPlayer.getHeight() > 500 || [...]) { [...]
和
if (x + myPlayer.getX() + myPlayer.getWidth() > 765 || [...]) { [...]