- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TankWar单机版开发详解
1.做这个项目是为了:
? 为了复习J2SE的内容,综合运用 J2SE所学的知识
? 掌握面向对象的基本思想,了解项目开发的整个过程
? 掌握MyEclipse开发J2SE程序的基本方法
? 掌握MyEclipse调试程序的基本方法
? 掌握编程时一些约定俗称的东西
?命名/格式等
? 掌握一些常用的编程方法
? getters setters
?持有对方引用
?定义常量
?保留版本程序
?学会版本比较
2?需求分析:
能够四处移动 能够打击敌人 敌人能够移动 能够模拟爆炸 能够产生障碍 能够增长生命
版本0.1
新建一个工程, 命名为TankWarO.1,然后新建一个类 TankClient,这是包含 main方法的主类。TankClient从Frame
类继承,在TankClient类中定义一个方法launchFrame,在该方法中确定窗口的位置和大小。代码如下:
import java.awt.*;
exte nds Frame{long serialVersi onUID=1L;
exte nds Frame{
long serialVersi onUID
=1L;
public static final public void lau nchFrame(){
t his .setLocation(400,300);
t his .setSize(800,600);
t his .setVisible( true );
}
public static void main( Stri ng[] args) { Tan kClie nt tc = new Tan kClie nt();
tc.lau nchFrame();
}
}
该版本的功能是:产生一个窗口。
掌握:通过MyEclipse 建立新的项目;为新的项目指定不同的源代码和输岀目录;指定项目所用的 JDK版本;通过
MyEclipse 建立新的类。
注意:类名和方法名的命名。
要剪名知意;类名首字母大写;方法名,变量名首字母小写;引用驼峰标识。
版本0.2
该版本要实现的功能:
添加窗口关闭的事件处理
不允许窗口大小改变
掌握:
匿名类的用法
匿名类使用在类短小,不涉及将来的扩展,不涉及重要的业务逻辑
通过MyEclipse重写父类方法
添加事件处理需要导入 java.awt.event.*;这个包,窗口关闭有两种方法可用,如果 TankClient从JFrame继承(当然
要导入javax.swing.* ),那么在launchFrame方法中只需写这样一条语句就可以了:
this .setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE );
如果TankClient 从Frame继承,添加窗口关闭的方法是:
this .addWi ndowListe ner( new Win dowAdapter(){
public void win dowClosi ng(Wi ndowEve nt e){
System. exit (0);
}
});
不允许改变窗口大小用下面语句:
this .setResizable( false );
标题栏的文字设置: this .setTitle( Ta nkWar);
版本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 );
版本0.4
? 功能:
? 让坦克运动起来
? 步骤:
? 将位置改变为变量
? 启动线程,不断重画
? 思考:为什么实用线程重画,而不是每按下一个键进行一次重画?
? 线程重画跟均匀,更能控制重画的速度
? 按键重画不能解决子弹自动飞行的问题
? 每次重画改变坦克的位置
? 掌握:
? 内部类的使用(内部类可以很方便地访问包装
原创力文档


文档评论(0)