简单的介绍java游戏编程

时间:2012-02-29 22:42:03

标签: java

我的问题是我哪里出错了。它应该是一个框架,我可以控制一个椭圆形,左右前后移动,然后使其与箭头一起移动。但是现在我甚至不能制作椭圆形,甚至不能插入一个字。

import java.awt.Graphics;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.JFrame;


public class JavaGame extends JFrame{
    int x, y;
    public class AL extends KeyAdapter {
        public void keyPressed(KeyEvent e){
            int keyCode = e.getKeyCode();
            if(keyCode ==e.VK_LEFT){
            x--;
        }
        if(keyCode ==e.VK_RIGHT){
            x++;
        }
        if(keyCode ==e.VK_DOWN){
            y--;
        }
        if(keyCode==e.VK_UP){
                y++;
        }
    }
    public void keyReleased(KeyEvent e){

    }
}
public JavaGame (){
    addKeyListener(new AL());
    setTitle("Game");
    setSize(250,250);
    setResizable(false);
    setVisible(true);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
}
public void Paint(Graphics g){
    x = 150;
    y = 150;
    g.fillOval(x, y, 15, 15);
    repaint();
}
public static void main(String[] Args){
new JavaGame();
}
}

2 个答案:

答案 0 :(得分:7)

可能是因为Paint不是标准的Java paint方法。我也没有看到任何类似事件循环的东西 - 你考虑过检查任何Swing教程/等等吗?

答案 1 :(得分:4)

建议:

  • 正如戴夫所说,你需要覆盖正确的方法
  • 即便如此,您不应该直接在顶级窗口中绘图,而应该在从JComponent派生的组件中绘制,例如JPanel或JComponent本身。
  • 使用此类的paintComponent(...)方法(通常)。
  • 使用@Override注释确保您真正重写了类的方法。
  • 不要将KeyListener与Swing一起使用,而应使用Key Bindings。

例如,请在此处查看我的示例代码:How to make an image move while listening to a keypress in Java.