当前位置:编程学习 > JAVA >>

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 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,