java中键盘控制的精灵的运动极限限制

问题描述 投票:0回答:1

我有一个图形图像,当按键盘的箭头键时,该图像已编码为移动。我希望它仅在GUI的特定区域内移动。

我尝试过的:

public void keyPressed(KeyEvent e)
{
    int key = e.getKeyCode();
    if(key==KeyEvent.VK_UP && y > 42)
    {
        up();
    }
}

整数“ y”是图像的y坐标。我以为如果不满足此条件,将不会调用up()。这种工作有效,但前提是我在y <42的限制区域内释放了向上键。如果随后尝试使用向上箭头,则图像将不会移动。但是,如果我按住向上箭头而不放开它,它将简单地通过边界。

我很确定我知道问题所在:一旦进入if语句,代码将不会在每次精灵移动像素时重新检查条件。仅当我松开按键并再次按下时,它才会检查。只是不知道该如何解决。 (我很确定答案就在于碰撞检测,但我不知道)

任何帮助将不胜感激。

java collision-detection arrow-keys
1个回答
0
投票

如果您想防止超出该范围的运动,应不小于42?您的if语句仅在按下向上箭头并y> 42时才执行。

© www.soinside.com 2019 - 2024. All rights reserved.