我正在学习 Java 中一些新的但有些困难的东西——图形!下面我解释一下这两个类的作用。我现在的新障碍是想出一种方法,只需按下 Z 即可为来自球的(即:像激光一样的射弹)绘制不同的图像。
问题是如果我在包含“KeyEvent.VK_Z”的if语句中编写一个方法例如:“g.drawImage(laser,laser_dx,laser_dy,this),我的keyPressed方法突然说“这个方法不在本地使用”。我有什么方法来解决这样的障碍?
到目前为止,我所做的是在“GameBoard”类中编写了一个嵌套类,其中包含我程序的所有键盘事件。
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();
}
}