项目实训

11
LOGO Page 1 项项项项 项项项项项项 项项项 2011 项 1 项项项 项项项项 项项项 —— —— 项项项项 项项项项

Upload: jenette-mclaughlin

Post on 30-Dec-2015

43 views

Category:

Documents


2 download

DESCRIPTION

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

TRANSCRIPT

Page 1: 项目实训

LOGO

Page 1

项目实训

四川文理学院

计科系 2011 级 1 班陈希

指导教师:文川豪

———— 坦克大战坦克大战

Page 2: 项目实训

LOGO

Page 2

项目介绍

过程分析过程分析

心得体会

Page 3: 项目实训

LOGO

Page 3

该游戏项目一共有三个界面:游戏界面,帮助界面,以及退该游戏项目一共有三个界面:游戏界面,帮助界面,以及退出界面。出界面。

1.1. 开始界面:通过三个按钮实现界面间的相互跳转,以及游开始界面:通过三个按钮实现界面间的相互跳转,以及游戏的直接退出。戏的直接退出。

2. 2. 帮助界面:提示游戏相关操作, 通过界面中的返回按钮返帮助界面:提示游戏相关操作, 通过界面中的返回按钮返回开始界面。 回开始界面。

3.3. 游戏界面:实现正反方坦克的移动,敌方坦克子弹的随 游戏界面:实现正反方坦克的移动,敌方坦克子弹的随 机发射,实现地图,击中敌方坦克增加生命值, 机发射,实现地图,击中敌方坦克增加生命值,坦克与障碍物的碰撞,退出游戏。坦克与障碍物的碰撞,退出游戏。

0 1:0 1: 项目介项目介绍绍

Page 4: 项目实训

LOGO

Page 4

一、开始界面一、开始界面创建创建 StartGameStartGame 类继承窗体类继承窗体 FrameFrame

在构造方法中设置窗体的属性,并添加三个按钮:在构造方法中设置窗体的属性,并添加三个按钮:

开始、帮助、退出。为按钮添加监听器,实例化三个界面开始、帮助、退出。为按钮添加监听器,实例化三个界面的对象,通过按钮实现页面间的跳转和游戏退出。(右的对象,通过按钮实现页面间的跳转和游戏退出。(右图)程序的入口图)程序的入口

0 2:0 2: 过程分过程分析析

Page 5: 项目实训

LOGO

Page 5

二、帮助界面二、帮助界面创建创建 HlepFrameHlepFrame 类继承窗体类继承窗体 FrameFrame

在构造方法中设置其属性,并添加返回按钮,通过按钮监在构造方法中设置其属性,并添加返回按钮,通过按钮监听,返回开始界面听,返回开始界面

Page 6: 项目实训

LOGO

Page 6

三、三、游戏界面:游戏界面:绘制地图绘制地图

1.1. 通过通过 ThreadThread 类或者实现类或者实现 RunnaleRunnale 接口获得线程对象。接口获得线程对象。通过线程对象连续绘制图片。为绘制地图打基础。通过线程对象连续绘制图片。为绘制地图打基础。

2.2. 绘制地图:绘制地图:

创建创建 GameMapGameMap 类类 (( 见右图为地图集合见右图为地图集合 ))

通过线程画出游戏界中的地图。通过线程画出游戏界中的地图。

Page 7: 项目实训

LOGO

Page 7

绘制双方坦克绘制双方坦克

1.1. 创建创建 TankTank 类,通过类,通过 IsGoodIsGood 判断坦克类型,通过键盘监判断坦克类型,通过键盘监听,改变听,改变 dirdir 值调用值调用 move()move() 方法实现坦克的运动。定义坦方法实现坦克的运动。定义坦克的碰撞检测方法:克的碰撞检测方法: pzpz ()()(与障碍物相撞)(与障碍物相撞)、、 pzTankpzTank()()(我的坦克与敌方坦克相撞)(我的坦克与敌方坦克相撞)、、 pzTankspzTanks ()() (( 敌方敌方坦克与敌方坦克相撞坦克与敌方坦克相撞 )) ,,处理坦克碰撞后的行为。处理坦克碰撞后的行为。

绘制子弹绘制子弹

1.1. 创建创建 MissileMissile 类,通过类,通过 drawdraw ()()方法绘子弹,定义子方法绘子弹,定义子弹与障碍物弹与障碍物 hitRoaldblockhitRoaldblock (),(),子弹与坦克子弹与坦克 hitTankhitTank()()碰撞的方法,处理子弹击中物体后的行为。(部分代碰撞的方法,处理子弹击中物体后的行为。(部分代码)码)

绘制炮弹爆炸效果绘制炮弹爆炸效果

1.1. 创建创建 ExploedExploed 类,通过类,通过 drawdraw ()方法画出一套爆炸效()方法画出一套爆炸效果。果。

Page 8: 项目实训

LOGO

Page 8

绘制障碍物绘制障碍物

1.1. 定义抽象类定义抽象类 RoaldblockRoaldblock 拥有障碍物的所有属性及拥有障碍物的所有属性及drawdraw 方法,定义方法,定义 Xz,Zb,ShuXz,Zb,Shu 三个障碍物类继承此抽象三个障碍物类继承此抽象类。类。

2.2. 定义定义 CcCc 类,及其特有的类,及其特有的 drawdraw 方法,绘制出草坪。方法,绘制出草坪。

绘制血条绘制血条

1.1. 在在 TankTank 类中定义类中定义内部类内部类 BloodBarBloodBar ,内部类拥有画,内部类拥有画血条方法血条方法 drawdraw (),在(),在 TankTank 类的类的 drawdraw ()中调用()中调用此此 drawdraw 方法,通过方法,通过 isGoodisGood 判断坦克类型,画出双方判断坦克类型,画出双方血条。血条。

控制坦克的生命值控制坦克的生命值

1.1. 创建创建 AddlifeAddlife 类,用于绘制能量油。类,用于绘制能量油。

2.2. 在在 TankTank 类中给定坦克的类中给定坦克的 lifelife 初值为初值为100100 ,, MissileMissile 类类 hitTankhitTank ()()方法可实现获得能量方法可实现获得能量油,油, LifeLife 值增加的效果。值增加的效果。

Page 9: 项目实训

LOGO

Page 9

实现游戏功能实现游戏功能

1.1. 创建主类创建主类 MainFrameMainFrame ,在主类中创建内部类,在主类中创建内部类TankTreadTankTread 继承继承 TreadTread ,实现线程。,实现线程。

22 、定义子弹、敌方坦克、爆炸效果、加血、各种障碍物等对、定义子弹、敌方坦克、爆炸效果、加血、各种障碍物等对象的集合,定义象的集合,定义 paintpaint ()()方法,在方法中实例化游戏界面上方法,在方法中实例化游戏界面上物体的对象,通过对象调用其特有的物体的对象,通过对象调用其特有的 drawdraw 方法绘制出图像,方法绘制出图像,同时调用各种碰撞检测方法,实现游戏中的各种动作和行为。同时调用各种碰撞检测方法,实现游戏中的各种动作和行为。

3.3.UpdateUpdate (( )) 方法中调用方法中调用 paintpaint 方法实现图片缓冲。方法实现图片缓冲。

Page 10: 项目实训

LOGO

Page 10

游戏界面游戏界面

Page 11: 项目实训

LOGO

Page 11

收获收获回顾回顾

首先,实训前一天参观了成都高新区软首先,实训前一天参观了成都高新区软件园,让我体会到最为一名职业人的辛件园,让我体会到最为一名职业人的辛苦,坚定了我学习的决心。苦,坚定了我学习的决心。

其次,通过这几天的学习和实践,明显其次,通过这几天的学习和实践,明显感到自己在基础知识上仍存在漏洞,在感到自己在基础知识上仍存在漏洞,在老师的悉心讲解和指导下,收获了不少老师的悉心讲解和指导下,收获了不少专业知识。专业知识。

与此同时,在实现了一些基本功能后,与此同时,在实现了一些基本功能后,小有成就,更加提升了我的学习热情。小有成就,更加提升了我的学习热情。

最后,感谢老师的帮助和同学的团结协最后,感谢老师的帮助和同学的团结协作,一定将学到的知识好好运用到今后作,一定将学到的知识好好运用到今后的学习和工作中。的学习和工作中。

0 3:0 3: 心得体心得体会会

1. 学习到线程的相关知识。

2. 能够灵活运用容器组件的布局及布局管理器。

3. 学习到在游戏的集成上添加事件监听器。

4. 学习并运用了事件源,接口方法及说明,还有事件的适配器。

5. 实现图片的缓冲等。