对象不会出现在java swing中的按键上
因此,我尝试使用swing在Java中制作一个非常简单的游戏。这是一个太空入侵者类型的游戏,我已经成功地在太空船上编码,它可以左右移动。然而,我有很多麻烦让“镜头”出现
我现在还不想定位它,我真的只是想在按键上创建一个对象来让它工作。我假设,因为它最初不是在“绘制”方法中,所以它不会出现。但我不知道怎么让它出现!有什么想法吗
以下是当前代码供参考:
public void keyPressed(KeyEvent e) {
if (KeyEvent.VK_RIGHT == e.getKeyCode()) {
moveRight();
}
if (KeyEvent.VK_LEFT == e.getKeyCode()) {
moveLeft();
}
if (KeyEvent.VK_SPACE == e.getKeyCode()) {
shoot();
}
}
public void shoot() {
Laser laser = new Laser(new Point(200, 200));
this.repaint();
}
public void moveLeft() {
if (player.getCentre().getX() <= 20) {
player.setX(20);
} else {
double movement = player.getCentre().getX();
movement -= 10;
player.setX(movement);
}
this.repaint();
}
@Override
public void paint(Graphics g) {
setBackground(Color.black);
super.paint(g);
player.draw(g);
}
我只想让shoot()成功创建一个对象,并让它显示在我的面板中
# 1 楼答案
问题/建议:
paintComponent
方法,并确保在重写中调用super的方法李>protected void paintComponent(Graphics g)
覆盖而不是public void paint(Graphics g)
覆盖,应该包含这样做的代码李>由于您发布了一个我们无法编译或运行的代码片段,所以我们提供的任何建议都有点有限。如果这些建议不能让你找到答案,那么请创建并发布一个小而简单的完整程序来说明你的问题,一个MCVE。请查看链接以了解这个非常有用的工具的详细信息