1
 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 ();

これが現在のコードです。実行すると、閉じることさえできないフリーズした空白のウィンドウが表示されます。

4

1 に答える 1

1

問題は if ステートメントにあります。

if(run = false)

割り当ては割り当てられている値を返すため (たとえば false)、決して実行されません。

=に変更する必要があります==

無限の for ループを while ループに変更することもできます。

while(input != KeyEvent.VK_SPACE) {
}

また、KeyListener がクラスに追加されていることを確認してください (ctor 内)。

addKeyListener(new MyKeyListener())

コードをテストしたところ、うまくいきました。

于 2012-06-14T20:12:12.273 に答える