1
我正在学习Java中的一些新东西并且有点困难 - 这是图形!下面我解释两个班级所做的事情。我现在的新障碍正在想出一种方法,通过只按Z来为球体(即:像激光那样的射弹)绘制不同的图像。Java图形如何在keyPressed中绘制图像
问题是如果我编写一个方法例如: “g.drawImage(laser,laser_dx,laser_dy,this)在包含”KeyEvent.VK_Z“的if语句中,我的keyPressed方法突然说”这个方法不是在本地使用“。我有什么办法来解决这个障碍?
什么我迄今所做的写入包含我的程序的所有的键盘事件“游戏键盘”类中的嵌套类。
private class Adapter extends KeyAdapter
{
public void keyPressed(KeyEvent e)
{
int keyCode = e.getKeyCode();
if(keyCode == KeyEvent.VK_RIGHT)
{
ball_dx += ball_velocity;
}
if(keyCode == KeyEvent.VK_LEFT)
{
ball_dx -= ball_velocity;
}
if(keyCode == KeyEvent.VK_Z){
}
}
}
下面是一个名为“Gameboard”的独立类中的绘图图形方法:这个类只绘制了一个绿色球(这是一个.png图像)的图像,它可以用箭头键左右移动!
public class GameBoard extends JPanel implements ActionListener
{
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawImage(ball, ball_dx, ball_dy, this);
Toolkit.getDefaultToolkit().sync();
}
public void actionPerformed(ActionEvent arg0)
{
repaint();
}
}
更加结构化的解决方案,我会尝试你的方法杰克。感谢这些简单而复杂的例子,它给了我足够的理由来让我思考你的方法。 =] – Nicholas