我正在尝试使用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();
}

最佳答案

您实际上并不是仅通过命名KeyEvent w来检查w键。您需要检查if (w.getKeyCode() == KeyEvent.VK_W)
Java中的Y坐标从顶部的0开始,因此您可能想从CharY减去以使其上升。
这将更新两次,一次是在按下键时,一次是在松开时。不确定这是否是您真正想要的。
不知道您的paint函数内部是什么,甚至不知道是否实现了它,很难说问题是否出在这里,但是看起来应该像

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

08-07 09:24