0

g.drawImage() を使用して、描画した画像を Jpanel に移動しようとしています。このコードが機能しない理由を知る必要があります (w キーを使用して画像を上に移動しようとしています)。

int CharX = 1;
int CharY = 30;

public void keyPressed(KeyEvent w) {
    CharY = CharY + 1;
    repaint();
}
public void keyReleased(KeyEvent w) {
    CharY = CharY + 1;
    repaint();
}
4

2 に答える 2

3
  1. KeyEvent に w という名前を付けるだけでは、実際には w キーをチェックしているわけではありません。チェックする必要がありますif (w.getKeyCode() == KeyEvent.VK_W)
  2. Java の Y 座標は上が 0 から始まるため、から差し引いて上に移動したい場合がありますCharY
  3. これは、キーを押したときと離したときに 2 回更新されます。それがあなたが本当に望んでいるものかどうかはわかりません。
  4. 関数の中身が分からないpaint場合、または関数を実装したとしても、問題が実際にそこにないかどうかを判断するのは困難ですが、次のようになります。

    public void paint(Graphics g) { g.drawImage(yourImage, CharX, CharY, null); }

于 2013-05-31T16:12:28.160 に答える