java项目坦克大战.ppt

上传人:max****ui 文档编号:11549369 上传时间:2020-04-28 格式:PPT 页数:45 大小:219KB
返回 下载 相关 举报
java项目坦克大战.ppt_第1页
第1页 / 共45页
java项目坦克大战.ppt_第2页
第2页 / 共45页
java项目坦克大战.ppt_第3页
第3页 / 共45页
点击查看更多>>
资源描述
TankWar,手把手、一行一行演示项目制作,项目的需求,单机版程序演示能够四处移动能够打击敌人敌人能够移动能够模拟爆炸能够产生障碍能够增长生命,自我介绍,项目的针对对象,初步掌握了J2SE的同学掌握了常用的一些类掌握了常用的一些知识点写过一些学习的程序(toyprogram),学习方法,不必太关注细节不必非得把某个类所有的细节全了解清楚再动手不必追求完美关键是要写完,要想方设法让它运行起来量变引起质变,做这个项目是为了,复习J2SE,综合运用J2SE所学的知识初步掌握面向对象编程的基本思想掌握Eclipse开发J2SE程序的基本方法初步掌握Eclipse调试程序的方法掌握编程时一些约定俗成的东西命名/格式等掌握一些常用的编程方法getterssetters持有对方引用定义常量保留程序版本学会版本比较激发大家的学习兴趣,做这个项目不是为了,不是为掌握软件工程的系统理论瀑布式螺旋递增式不是为了掌握专业游戏的开发方法不应用专门的GameAPI不是为了掌握专业的设计模式没有刻意去应用设计模式,项目的注意事项,要敲,一定要动手敲,要一行一行跟着敲看会或者听懂都不算掌握了程序只有写出来才能证明你真正的掌握不要照抄,不要记我做程序的步骤要掌握思路,项目所用的工具,eclipse3.2JDK5.0或以上泛型在5.0后才得到支持,项目的预备知识,J2SE基础知识面向对象I/O多线程GUI初步事件模型,版本0.1,功能:产生一个窗口掌握:通过Eclipse建立新的项目为新的项目指定不同的源代码和输出目录指定项目所用的JDK版本通过Eclipse建立新的类注意:类名和方法名的命名见名知意类名首字母大写方法名、变量名首字母小写应用驼峰标识,版本0.2,功能:添加关闭窗口的事件处理不允许窗口的大小改动掌握:匿名类的用法思考:匿名类的应用场合?类短小、不涉及将来的扩展、不涉及重要的业务逻辑通过Eclipse重写父类的方法注意:没掌握匿名类的先照抄,不写也行不影响最后的运行效果,版本0.3,功能:画出代表坦克的实心圆掌握:如何重写paint方法注意:不要改变原来的前景色回顾:paint(Graphicsg)方法,窗口重画时自动调用x轴、y轴的方向,x,y,w,h,x,y,Frame的左上角,版本0.4,功能:让坦克运动起来步骤:将位置改变为变量启动线程不断重画思考:为什么使用线程重画,而不是每按下一个键进行一次重画?线程重画更均匀,更能控制重画的速度。按键重画不能解决子弹自动飞行的问题。每次重画改变Tank位置掌握:内部类的使用思考:内部类有哪些好处?什么时候使用内部类?可以方便的访问包装类的方法。不方便公开的,只为包装类服务的类应当定义为内部类。注意:x,y值得含义,指的是小方块的左上角点,版本0.41,功能使用双缓冲消除闪烁现象原因刷新重画频率太快,paint方法还没有完成逐条显示解决办法将所有东西画在虚拟图片上,一次性显示出来注意如果不能理解透彻就照抄本版本代码,不影响对J2SE的练习功效,思考,把游戏窗口的大小改变为640X480?定义常量以应付将来的改动,版本0.5,功能:代码重构将以后可能需要多处改变的量定义为常量Frame的宽度和高度常量名一般大写注意:常量一般是publicstaticfinal的。,版本0.6,功能:让坦克听从我们的指挥添加键盘监听器类KeyMonitorTankCient添加键盘监听器针对不同的键改变坦克的位置,与重画线程结合产生不同方向运动注意:switchcase语句中break语句的运用写程序要循序渐进,思考,增加100辆坦克到游戏中,版本0.7重要版本,功能:将坦克单独包装成类步骤:建立Tank类为Tank类添加成员变量xy添加draw方法,使Tank类独立控制自己的画法添加Tank类处理按键的方法根据Tank类修改TankClient类掌握:面向对象的思考方法细节隐藏、构建单独的类、首先考虑系统中有哪些类合适的方法应该出现在合适的类中,思考,如何让坦克向8个方向行走?,版本0.8,功能:让主战坦克向8个方向行走(1)步骤添加记录按键状态的布尔量添加代表方向的量(使用枚举)根据按键状态确定Tank方向根据方向进行下一步的移动(move),版本0.9,功能:让主战坦克向8个方向行走(2)步骤处理键抬起的消息修改TankClient相关代码,版本1.0,功能添加子弹类步骤:添加Missile类添加x,y,dir等属性以及常量添加构造方法,draw方法等必要方法根据不同方向,进行不同的运动在TankClient中模拟一颗子弹new一颗子弹出来画出来注意:不一定一次写到位进行多次试验将步骤分解开来逐一进行调试,版本1.1,功能:根据主战坦克的方向和位置,打出子弹步骤增加对Ctrl键的按键处理根据“坦克打出一发子弹”这句话,来确定Tank中的方法fire,其返回值为Missle根据Tank方向和位置设定子弹的方向和位置并new出来,然后返回(fire方法的实现)注意:掌握面向对象的思维方式来确定类应该具有的方法,x,y,w,h,版本1.2,功能为了解决坦克停下也能打出炮弹的问题画出炮筒步骤Tank类增加新的属性ptDir每次move后根据Tank新的方向确定炮筒的方向将炮筒用直线的形式表现出来,x,y,w,h,版本1.3,功能打出多发炮弹步骤:使用容器装炮弹每当抬起Ctrl键就往容器中加入新的炮弹逐一画出每一发炮弹注意:泛型的使用,版本1.4,功能解决炮弹不消亡的问题解决坦克出界的问题步骤:加入控制炮弹生死的量bLive(Missle)当炮弹已经死去就不需要对其重画当炮弹飞出边界就死亡当炮弹死亡就从容器中去除注意:将思维转化为代码,Debug的运用,一步一步跟踪代码为代码设置断点Stepinto和stepover的概念学会在运行过程中观测变量的值,版本1.5,功能画一辆敌人的坦克步骤:加入区别敌我的量good根据敌我的不同设置不同的颜色更新Tank的构造函数,加入goodTankClient中new出敌人的坦克并画出,版本1.6,功能:将敌人坦克击毙分析:一颗子弹击中敌人坦克步骤:Missle中加入hitTank(Tank)方法,返回布尔类型碰撞检测的辅助类Rectangle为Tank和Missle都加入getRect方法当击中敌人坦克时,坦克被打死,子弹也死去增加控制Tank生死的量live如果死去就不画了注意:不要照抄代码沿着思路往里加入代码,版本1.7,功能加入爆炸步骤:添加爆炸类用不同直径的圆模拟爆炸加入live加入位置属性加入draw方法爆炸应该存在于集合类中TankClient加入集合将集合中的爆炸逐一画出(如果死去就去除)击毙一辆坦克后应产生爆炸hitTank时应产生爆炸,版本1.8,功能:添加多辆坦克步骤:用容器来装敌人的Tank向容器中装入多辆敌人Tank画出来运行,不能打掉添加hitTanks方法,打一系列TankTankClient里面每发子弹都打tanks,版本1.9,功能:让敌军坦克更加智能步骤:让敌军坦克动起来构造函数中可以指定方向new敌军坦克的时候指定敌军坦克的方向让敌军坦克向随机方向移动(Tank)静态的,添加随机数产生器java.util.Randommove完成后,如果是敌军坦克的,随机产生一个数,来设定坦克下一个方向Direction.values()让敌军坦克向随机方向移动随机的步骤添加变量,记录随机步骤当=0时,改变方向,否则,只是随机步骤递减让敌军坦克发射炮弹本军炮弹不打本军炮弹添加好坏bGood,根据好坏画不同颜色修改炮弹的构造方法修改Tank的fire方法修改hitTank方法,好不能打好,坏不能打坏敌军炮火不能太猛烈,版本2.0,功能:添加两堵墙步骤:建Wall类、建立Wall对象、画出来让每一颗子弹打击每一堵墙hitWall()方法注意:子弹速度不能太快,否则很容易穿过墙让坦克不能穿过墙记录上一次的位置oldX,oldY修改构造函数每次move之前纪录上一次位置添加stay方法记录移动前的位置当撞到时回到移动前的位置当碰到墙的时候stay,版本2.1,功能:坦克不能互相穿越步骤:当坦克撞到Tank时stay,版本2.2,功能:超级炮弹步骤:处理按键A,版本2.3,功能:主战坦克的生命值步骤:加入life变量在窗口显示生命值,版本2.4,功能:图形化表示主战坦克的生命值步骤:根据不同的life值进行的不同的显示,版本2.5,功能:添加“血块”步骤:添加blood类添加必要的方法让blood对象固定轨迹运动,并在一定时间后消失,版本2.6,功能:最后的修正敌人死光了重新加入我军死掉了F2开始,注释/文档与打包,生成javadocs文档生成jar文件,坦克的不足之处,面向对象的组织仍然不是很完美细小的毛病退出时控制线程结束专门的GAMEAPI主战坦克和机器人(敌人坦克)应当分开控制界面不漂亮,2.6以后的版本?,网络版20个左右的版本图形版,意见反馈,mashibing2004,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!