JFrame简单移动椭圆形移动游戏定位失败?

时间:2013-12-22 18:53:32

标签: java swing jframe

我有一个游戏开始我已经制作,基本上是一个椭圆形,我可以用键盘键箭头移动它。

我不想让它退出框架,所以我检查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);
    }
}

为什么会这样?

1 个答案:

答案 0 :(得分:1)

嗯,你正在检查的点(你的x和y)代表椭圆形的左上角。检查底部时必须添加高度,并在检查右边时添加宽度。

if (y + myPlayer.getY() + myPlayer.getHeight() > 500 || [...]) { [...]

if (x + myPlayer.getX() + myPlayer.getWidth() > 765 || [...]) { [...]