JAVA零基础——坦克大战(上)
花了一整天看了马士兵老师讲的坦克大战单机版的视频,作为一名java初学者来说,收获颇多,
尤其是感受到面向对象的方法,特此总结一下,以备后用。
(最后会附整体代码,及详细注释)说明一下,此小游戏只是熟悉java基础只是而已,谈不上项目...大牛忽视之即可~
截止此时已经实现的功能是:画出了一辆坦克,可以八个方向灵活移动,按CTRL建可以发射炮弹 。
《第一阶段》做出界面:练习GUI基础知识
该阶段代码
1import java.awt.*;
2import java.awt.event.*;
3
4public class TankClient extends Frame {
5
6 public void lauchFrame() {
7 this.setLocation(400, 300);//设定初始位置
8 this.setSize(800, 600);//设定大小
9 this.setTitle("TankWar");//设定标题
10 this.addWindowListener(new WindowAdapter() {
11 public void windowClosing(WindowEvent e) {
12 System.exit(0);
13 }
14 });//匿名类实现窗口关闭
15 this.setResizable(false);//使窗口固定
16 setVisible(true);//将窗口显示出来
17 }
18
19 public static void main(String[] args) {
20 TankClient tc = new TankClient();
21 tc.lauchFrame();//启动窗口
22 }
23
24}《第二阶段》画出一辆坦克,并实现四个方向的移动:此阶段写完后实现了,坦克根据键盘控制进行四个方向的移动,但是运动不灵活。
(1)重写paint方法,画出代表坦克的实心圆。paint()方法在每次窗口被激活会自动调用,repaint()方法也会自动调用paint()方法。
此部代码
1public void paint(Graphics g) {//g相当于一个画笔
2 Color c = g.getColor();//拿到当前颜色,以便恢复
3 g.setColor(Color.RED);
4 g.fillOval(x, y, 30, 30);//画一个圆
5 g.setColor(c);//恢复为初始颜色
6 }(2)让坦克运动起来。其实初想感觉很简单,按一下方向键,改变一下x,y的值,如x+=5,y+=5,然后再重画一下,不就可以实现坦克的移动了吗?但是如果按一次键,才重新画一下的话,动
补充:软件开发 , Java ,