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