public void paint (Graphics g)
{
bufferGraphics.setColor (Color.black);
bufferGraphics.clearRect (0, 0, dim.width, dim.width);
while (input != KeyEvent.VK_SPACE)
{
bufferGraphics.fillRect (0, 0, dim.width, dim.height);
}
bufferGraphics.drawImage (track, 0, 0, dim.width, dim.height, this);
bufferGraphics.setFont (new Font ("Calibri", Font.PLAIN, 25));
bufferGraphics.drawString ("Level: " + level, 30, 30);
bufferGraphics.drawImage (car, 620, myCarY, 70, 120, this);
bufferGraphics.drawImage (opponent, 415, oppCarY, 70, 120, this);
move ();
这是现在的代码。执行后,我得到一个冻结的空白窗口,甚至无法关闭。
最佳答案
您的问题在您的if语句中。
if(run = false)
永远不会执行,因为赋值会返回要赋值的值(例如false)。
您需要将
=
更改为==
。您可能还想将infor循环更改为while循环,例如
while(input != KeyEvent.VK_SPACE) {
}
还要确保将KeyListener添加到类中(在ctor中)
addKeyListener(new MyKeyListener())
我刚刚测试了代码,它起作用了。