使用java swing组件搭建简单的游戏窗体,实现己方对象上下左右移动的基础步骤解析
- 首先要搭建一个窗口,即新建一个类,继承Jframe类,并且在类中搭建好你的窗体:如窗体大小、窗体的布局方式、窗体的位置、窗体的一些控件等。最后设置窗体为可见。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26public class Begin extends JFrame { /** * 初始化方法 */ public void init(){ //设置标题 this.setTitle("玩玩而已"); //设置窗体大小 this.setSize(500,400); //设置布局 this.setLayout(null); //设置窗体关闭程序自动关闭 this.setDefaultCloseOperation(EXIT_ON_CLOSE); //设置窗体居中显示 this.setLocationRelativeTo(null); //添加主面板 MainJpanel mainJpanel=new MainJpanel(); mainJpanel.init(this); //设置面板大小 mainJpanel.setBounds(0, 0, 500, 400); //设置主面板可见 this.add(mainJpanel); //设置窗体可见 this.setVisible(true); }
- 搭建好窗口以后,我们需要新建一个画板,把这个面板在添加到窗口里面。然后我们就在画板类里面进行一系列的操作,如上图添加。面板里,我们要做的事比较多:
2.1首先我们要继承Jpanel类,然后声明一个窗体类的对象,并且定义一个带参的构造方法,用来把窗体类的属性都传过来:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21public class MainJpanel extends JPanel{ //声明全局的begin对象 Begin begin; //声明玩家对象 public Player player=new Player(); //声明一个图片对象 ImageIcon img=player.player4; //面板加载方法 public void init(Begin begin){ this.begin=begin; //设置玩家出现的初始位置 player.x=200; player.y=10; //给面板添加监听器 KeyClick kc=new KeyClick(); begin.addKeyListener(kc); //启用刷新面板线程 Rethread rt=new Rethread(this); rt.start(); }
2.2东西都传过来以后,我们就可以重写paintComponent()方法,在这个方法里面往面板上面画东西了。操作代码如下:
复制代码
1
2
3
4
5
6
7
8@Override protected void paintComponent(Graphics g) { super.paintComponent(g); //在面板上面出玩家 g.drawImage(img.getImage(), player.x, player.y, 40, 40, this); g.drawString(".", player.x, player.y); }
2.3写了上面这些代码,应该就可以看到面板上面的东西了。前提是你有写玩家的实体类。图片路径没有错误。
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18/** * 玩家实体类 * @author VastWu * */ public class Player { //给点位置属性 public int x; public int y; //给一个初始速度 public int speed=10; //玩家模型 public ImageIcon player1=new ImageIcon("imgs\22.png"); public ImageIcon player2=new ImageIcon("imgs\22right.png"); public ImageIcon player3=new ImageIcon("imgs\22down.png"); public ImageIcon player4=new ImageIcon("imgs\22left.png"); }
2.4以上是玩家实体类,完成以上代码应该可以看到东西了:
2.5想让飞机动起来,我们可以在面板类里面添加一个内部类来实现监听,这里我是用的键盘事件监听,用飞机坐标加减飞机速度来实现移动。详细代码如下。添加监听器步骤请见上第二段码 源码较长,贴图
2.6写完这些,你以为你的飞机就可以动了吗?这样子其实还是不可以动的,想让飞机动起来,我们还需要一个线程类,来对面板类进行不断地刷新,就是让paint方法不停的画,一直刷新面板。然后再启动这一线程。如:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23/** * 面板刷新线程 * @author VastWu * */ public class Rethread extends Thread{ MainJpanel mainJpanel; public Rethread(MainJpanel mainJpanel){ this.mainJpanel=mainJpanel; } @Override public void run() { while(true){ try { Thread.sleep(10); } catch (Exception e) { e.printStackTrace(); } mainJpanel.repaint(); } } }
-
写到这里,后面很多的游戏动作基本雷同。完成了己方机的基础移动动作,并且随着移动方向改变图片的方向!
复制代码1
2
3谢谢观看 ——VastWu
最后
以上就是斯文菠萝最近收集整理的关于使用java swing组件搭建简单的游戏窗体的全部内容,更多相关使用java内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复