tankwar单机版开发详解.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 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)

xiaozu + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档