我有一个图形图像,当按键盘的箭头键时,该图像已编码为移动。我希望它仅在GUI的特定区域内移动。
我尝试过的:
public void keyPressed(KeyEvent e)
{
int key = e.getKeyCode();
if(key==KeyEvent.VK_UP && y > 42)
{
up();
}
}
整数“ y”是图像的y坐标。我以为如果不满足此条件,将不会调用up()。这种工作有效,但前提是我在y <42的限制区域内释放了向上键。如果随后尝试使用向上箭头,则图像将不会移动。但是,如果我按住向上箭头而不放开它,它将简单地通过边界。
我很确定我知道问题所在:一旦进入if语句,代码将不会在每次精灵移动像素时重新检查条件。仅当我松开按键并再次按下时,它才会检查。只是不知道该如何解决。 (我很确定答案就在于碰撞检测,但我不知道)
任何帮助将不胜感激。
如果您想防止超出该范围的运动,应不小于42?您的if语句仅在按下向上箭头并y> 42时才执行。