- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TankWar单机版开发详解
TankWar单机版开发详解
1.做这个项目是为了:
为了复习J2SE的内容,综合运用J2SE所学的知识
掌握面向对象的基本思想,了解项目开发的整个过程
掌握MyEclipse开发J2SE程序的基本方法
掌握MyEclipse调试程序的基本方法
掌握编程时一些约定俗称的东西
命名/格式等
掌握一些常用的编程方法
getters setters
持有对方引用
定义常量
保留版本程序
学会版本比较
2.需求分析:
能够四处移动
能够打击敌人
敌人能够移动
能够模拟爆炸
能够产生障碍
能够增长生命
3.版本0.1
新建一个工程,命名为TankWar0.1,然后新建一个类TankClient,这是包含main方法的主类。TankClient从Frame类继承,在TankClient类中定义一个方法launchFrame,在该方法中确定窗口的位置和大小。代码如下:
import java.awt.*;
public class TankClient extends Frame{
public static final long serialVersionUID = 1L;
public void launchFrame(){
this.setLocation(400,300);
this.setSize(800,600);
this.setVisible(true);
}
public static void main(String[] args) {
TankClient tc = new TankClient();
tc.launchFrame();
}
}
该版本的功能是:产生一个窗口。
掌握:通过MyEclipse建立新的项目;为新的项目指定不同的源代码和输出目录;指定项目所用的JDK版本;通过MyEclipse建立新的类。
注意:类名和方法名的命名。
要剪名知意;类名首字母大写;方法名,变量名首字母小写;引用驼峰标识。
4.版本0.2
该版本要实现的功能:
添加窗口关闭的事件处理
不允许窗口大小改变
掌握:
匿名类的用法
匿名类使用在类短小,不涉及将来的扩展,不涉及重要的业务逻辑
通过MyEclipse重写父类方法
添加事件处理需要导入java.awt.event.*;这个包,窗口关闭有两种方法可用,如果TankClient从JFrame继承(当然要导入javax.swing.*),那么在launchFrame方法中只需写这样一条语句就可以了:
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
如果TankClient从Frame继承,添加窗口关闭的方法是:
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
不允许改变窗口大小用下面语句:
this.setResizable(false);
标题栏的文字设置:this.setTitle(TankWar);
5.版本0.3
功能:画出代表坦克的实心圆
掌握:如何重写paint方法
注意:不要改变原来的颜色
paint(Graphics g)方法,窗口重画时自动调用。桌面的左上角为(0,0)位置,向右代表x轴,向下代表y轴,画圆时涉及到4个参数,分别代表起始位置的x值和y值,长度和宽度,圆为该正方形的内切圆。
双击TankCLient,点击右键,选择Source,Override/Implements Methods,重写paint方法,系统将自动生成一些源码,在paint方法里面,我们添加下面代码:
Color c = g.getColor();//去的当前颜色
g.setColor(Color.red);//设置绘画笔颜色
g.fillOval(50, 50, 30, 30);
g.setColor(c);//设回原来颜色
改变一下背景颜色,在launchFrame中添加:
this.setBackground(Color.green);
6.版本0.4
功能:
让坦克运动起来
步骤:
将位置改变为变量
启动线程,不断重画
思考:为什么实用线程重画,而不是每按下一个键进行一次重画?
线程重画跟均匀,更能控制重画的速度
按键重画不能解决子弹自动飞行的问题
每次重画改变坦克的位置
掌握:
内部类的使用(内部类可以很方便地访问包装类的方法,不方便公开的,只为包装类服务的类应当设置为内部类)
注意:x,y值的含义,指的是小方块左上角
文档评论(0)