4227.java坦克大战游戏的实现与设计

4227.java坦克大战游戏的实现与设计

ID:6683476

大小:132.00 KB

页数:13页

时间:2018-01-22

4227.java坦克大战游戏的实现与设计_第1页
4227.java坦克大战游戏的实现与设计_第2页
4227.java坦克大战游戏的实现与设计_第3页
4227.java坦克大战游戏的实现与设计_第4页
4227.java坦克大战游戏的实现与设计_第5页
资源描述:

《4227.java坦克大战游戏的实现与设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、课程设计说明书No.13坦克大战游戏的实现与设计1.课程设计的目的随着手机的日益普及,java功能在移动设备上的实现及java应用程序产生的影响力,对丰富人们的生活内容,提供便捷的咨询起着不可忽视的作用。本项目介绍了坦克大战的基本构建方法、java的相关技术及本程序的结构分析和具体功能的实现。游戏是在Eclipse3.2环境下编程。本项目重点运用了图形化用户界面GUI,Thread多线程的有关知识,其中涉及了绘图工具的运用,事件处理操作以及图形的碰撞检测等知识点。通过此课程设计,使学生巩固所学知识、培养学生动手能力,了解Java的面向对象的体系结构。学生用Ja

2、va语言设计一个完整的应用程序,综合应用所学知识完成软件的分析、设计、调试和总结,提高学生对Java语言的综合应用能力和解决问题的能力。2.设计方案论证2.1设计思路本项目介绍了坦克大战的基本构建方法、java的相关技术及本程序的结构分析和具体功能的实现。游戏是在Eclipse3.2环境下编程。它的主要功能有:(1)能够朝四个方向移动(2)能够发射子弹互相攻击(3)敌人能够移动(4)能够模拟爆炸(5)能够产生障碍 (6)能够增长生命玩家控制主坦克(上方有血条的)的移动以及炮弹的发射。若玩家将敌方坦克全部打掉并保证自己的老家不被打掉则视为玩家获胜;若期间由玩家控

3、制的主坦克被打掉,或者自己的老家被打掉则视为玩家失败。游戏中有金属墙,普通墙,河水等障碍物,玩家无法穿越它们;但是玩家可以将普通墙打掉。游戏中的森林可以将坦克隐身,药箱可以将坦克的血加满。##大学课程设计说明书No.132.2设计方法2.2.1构建游戏主类在主类中构造一个主Frame框架,设置它的大小和位置,并将其显示。在主类中编写一段代码,构造一个窗口。并添加窗口关闭的处理事件,将窗口设置成打小不可变。主要代码如下:this.addWindowListener(newWindowAdapter(){publicvoidwindowClosing(Window

4、Evente){System.exit(0);}});this.setResizable(false);2.2.2构建坦克类Tank构造主窗口中所需要的Tank类,并将坦克加到窗口中,实现坦克的四个方向的移动创建一个坦克类,用画图工具构造出简单的图形代表坦克,并将坦克加入到主窗口当中。主要代码如下:publicclassTank{……publicvoiddraw(Graphicsg){Colorc=g.getColor();g.setColor(Color.RED);g.fillOval(x,y,30,30);g.setColor(c);}}publiccla

5、ssTankClientextendsFrame{……##大学课程设计说明书No.13publicvoidpaint(Graphicsg){myTank.draw(g);}}让坦克朝四个方向运动起来,在主类TankClient中启用多线程机制,让系统不断的进行重画。并在Tank类中建立处理按键的方法,实现坦克的手动移动;根据坦克类修改TankClient主类,在主类中注册事件监听器,并调用Tank类中的方法。主类TankClient中使用双缓冲机制消除坦克的闪烁现象。在Tank类当中添加的按键方法,代码如下:publicvoidkeyPressed(KeyEv

6、ente){intkey=e.getKeyCode();switch(key){caseKeyEvent.VK_LEFT:bL=true;break;……}locateDirection();}publicvoidkeyReleased(KeyEvente){intkey=e.getKeyCode();switch(key){caseKeyEvent.VK_LEFT:bL=false;break;……}##大学课程设计说明书No.13locateDirection();}TankClient类中的多线程机制的主要代码如下:newThread(newPaintT

7、hread()).start();……privateclassPaintThreadimplementsRunnable{publicvoidrun(){while(true){repaint();try{Thread.sleep(50);}catch(InterruptedExceptione){e.printStackTrace();}}}}2.2.3添加炮弹Missile类在Missile类当中添加x,y,dir等属性以及常量。在Missile类当中添加构造方法,draw方法等必要方法。根据不同的方向,子弹要进行不同的运动。在TankClient当中ne

8、w一颗子弹出来。2.2.4实现坦克的互

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。