首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >简单介绍java游戏编程

简单介绍java游戏编程
EN

Stack Overflow用户
提问于 2012-03-01 06:42:03
回答 2查看 55.1K关注 0票数 0

我的问题是我哪里出错了。它应该做一个框架,在那里我可以控制一个椭圆形,让它来回移动,左右移动,然后让它随着箭头移动。但现在我甚至不能画出这个椭圆形,甚至连一个字都插不进去。

代码语言:javascript
运行
复制
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();
}
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-01 06:46:03

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

票数 7
EN

Stack Overflow用户

发布于 2012-03-01 06:49:18

建议:

  • 正如戴夫所说,您需要覆盖
  • 的正确方法。即使如此,您也不应该直接在顶级窗口中绘制,而应该在从JComponent派生的组件(如JPanel或JComponent本身)中绘制。
  • 在此类的paintComponent(...)方法中绘制(通常)。
  • 使用@Override批注来确保您确实覆盖了类的方法。<代码>H29<代码>H110不要将KeyListener的方法与Swing一起使用,而应使用键绑定。<代码>H211<代码>F212

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9507829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档