1 / 11

项目实训

项目实训. —— 坦克大战. 计科系 2011 级 1 班陈希. 四川文理学院. 指导教师:文川豪. 项目介绍. 过程分析. 心得体会. 01. 02. 03. 04. 0 1: 项目介绍. 该游戏项目一共有三个界面:游戏界面,帮助界面,以及退出界面。 1. 开始界面:通过三个按钮实现界面间的相互跳转,以及游戏的直接退出。 2. 帮助界面:提示游戏相关操作, 通过界面中的返回按钮返回开始界面。

Download Presentation

项目实训

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 项目实训 ——坦克大战 计科系2011级1班陈希 四川文理学院 指导教师:文川豪

  2. 项目介绍 过程分析 心得体会 01 02 03 04

  3. 0 1:项目介绍 该游戏项目一共有三个界面:游戏界面,帮助界面,以及退出界面。 1.开始界面:通过三个按钮实现界面间的相互跳转,以及游戏的直接退出。 2. 帮助界面:提示游戏相关操作, 通过界面中的返回按钮返回开始界面。 3.游戏界面:实现正反方坦克的移动,敌方坦克子弹的随 机发射,实现地图,击中敌方坦克增加生命值,坦克与障碍物的碰撞,退出游戏。

  4. 0 2:过程分析 一、开始界面 创建StartGame类继承窗体Frame 在构造方法中设置窗体的属性,并添加三个按钮: 开始、帮助、退出。为按钮添加监听器,实例化三个界面的对象,通过按钮实现页面间的跳转和游戏退出。(右图)程序的入口

  5. 二、帮助界面 创建HlepFrame类继承窗体Frame 在构造方法中设置其属性,并添加返回按钮,通过按钮监听,返回开始界面

  6. 三、游戏界面: 绘制地图 1. 通过Thread类或者实现Runnale接口获得线程对象。通过线程对象连续绘制图片。为绘制地图打基础。 2.绘制地图: 创建GameMap类(见右图为地图集合) 通过线程画出游戏界中的地图。

  7. 绘制双方坦克 1.创建Tank类,通过IsGood判断坦克类型,通过键盘监听,改变dir值调用move()方法实现坦克的运动。定义坦克的碰撞检测方法:pz()(与障碍物相撞)、pzTank()(我的坦克与敌方坦克相撞)、pzTanks()(敌方坦克与敌方坦克相撞),处理坦克碰撞后的行为。 绘制子弹 1.创建Missile类,通过draw()方法绘子弹,定义子弹与障碍物hitRoaldblock(),子弹与坦克hitTank()碰撞的方法,处理子弹击中物体后的行为。(部分代码) 绘制炮弹爆炸效果 1.创建Exploed类,通过draw()方法画出一套爆炸效果。

  8. 绘制障碍物 1.定义抽象类Roaldblock拥有障碍物的所有属性及draw方法,定义Xz,Zb,Shu三个障碍物类继承此抽象类。 2.定义Cc类,及其特有的draw方法,绘制出草坪。 绘制血条 1.在Tank类中定义内部类BloodBar,内部类拥有画血条方法draw(),在Tank类的draw()中调用此draw方法,通过isGood判断坦克类型,画出双方血条。 控制坦克的生命值 1.创建Addlife类,用于绘制能量油。 2.在Tank类中给定坦克的life初值为100,Missile类hitTank()方法可实现获得能量油,Life值增加的效果。

  9. 实现游戏功能 1.创建主类MainFrame,在主类中创建内部类TankTread继承Tread,实现线程。 2、定义子弹、敌方坦克、爆炸效果、加血、各种障碍物等对象的集合,定义paint()方法,在方法中实例化游戏界面上物体的对象,通过对象调用其特有的draw方法绘制出图像,同时调用各种碰撞检测方法,实现游戏中的各种动作和行为。 3.Update()方法中调用paint方法实现图片缓冲。

  10. 游戏界面 双击此处替换图片

  11. 收获 回顾 0 3:心得体会 首先,实训前一天参观了成都高新区软件园,让我体会到最为一名职业人的辛苦,坚定了我学习的决心。 其次,通过这几天的学习和实践,明显感到自己在基础知识上仍存在漏洞,在老师的悉心讲解和指导下,收获了不少专业知识。 与此同时,在实现了一些基本功能后,小有成就,更加提升了我的学习热情。 最后,感谢老师的帮助和同学的团结协作,一定将学到的知识好好运用到今后的学习和工作中。 1.学习到线程的相关知识。 2.能够灵活运用容器组件的布局及布局管理器。 3.学习到在游戏的集成上添加事件监听器。 4.学习并运用了事件源,接口方法及说明,还有事件的适配器。 5.实现图片的缓冲等。

More Related