山寨腾讯“爱消除”游戏教程到今天就全部结束了,今天我们对前面所介绍的内容进行一个总结。
【TIP】山寨“爱消除”游戏已经成功升级为《消除僵尸》游戏,游戏可以在http://as.baidu.com/a/item?docid=5388035 下载。项目地址在https://github.com/3125788/CrazyZomby
也欢迎广大寨友学习利用此游戏框架,开发出更多更好的游戏来。
正如第一节课我们介绍的一样,山寨特训“爱消除”游戏框架式一个非常简单实用的游戏框架,核心代码只有一两百行。通过不断增加渲染类及控制类、添加游戏逻辑,可以逐渐丰富游戏的场景。这个框架适合初学者及快速开发的需要。
下面,我们将此游戏框架实现的主要内容简单介绍如下,帮助大家能够尽快熟悉这个框架。
1、elong.CrazyZomby,游戏的主界面及核心框架
类名 | 作用 |
CrazyZombyActivity | 游戏的主Activity 整个游戏仅此一个activity,所有游戏界面都是通过OPENGL来渲染的,包括菜单、游戏主界面及积分牌等 本游戏的一个最大特点就是所有场景都全部通过OPENGL来渲染。我们定义了以下场景,您也可以根据您的 需要随时增加更多的场景: public enum E_SCENARIO { MENU, /*菜单场景*/ GAME, /*游戏场景*/ RESULT, /*结果场景*/ } |
CrazyZombyConstent | 项目的常量(参数)定义 |
CrazyZombyGLSurfaceView | 游戏渲染的主框架。核心代码仅100多行,效率非常高,不会随着渲染类的增加而导致效率明显下降。 |
2、elong.CrazyZomby.Control,各种渲染类对应的控制类(静态渲染类不需要控制类)
类名 | 作用 |
CtlAutoTip | 自动提示特效的控制类 |
CtlBase | 控制基类,实现了通用的几个控制方法 |
CtlBomb | 炸弹特效的控制类 |
CtlDisappear | 消除特效的控制类 |
CtlExchange | 交换特效的控制类 |
CtlExplosion | 爆炸特效的控制类 |
CtlFill | 跌落特效的控制类 |
CtlLifeAdd | 获得生命特效的控制类 |
CtlLifeDel | 失去生命特效的控制类 |
CtlLoading | 游戏加载特效的控制类 |
CtlMenu | 菜单效果的控制类 |
CtlMonster | 怪兽特效的控制类 |
CtlResultScore | 计分牌的控制类 |
CtlSingleScore | 成绩提示特效的控制类 |
CtlTip1 | 提示特效1控制类 |
CtlTip2 | 提示特效2控制类 |
3、elong.CrazyZomby.Core,游戏的核心,提供各种游戏逻辑功能。你可以在这里丰富您的游戏逻辑
类名 | 作用 |
ActionTokenPool | 操作令牌池。为了支持同时进行多个交换操作,用令牌池进行冲突管理。每一个触摸动作都必须获得一个令牌才能进行操作, 触摸动作执行完成后,会释放对应的令牌。 |
ControlCenter | 控制中心类。游戏的核心逻辑。您可以在这里加上你的游戏控制逻辑,也可以单独设计游戏逻辑,然后作为控制中心类的 一个实例进行管理。 |
Life | 生命管理类 |
Score | 成绩管理类 |
Sound | 音效管理类 |
Timer | 时间管理类 |
4、elong.CrazyZomby.Draw,OPENGL渲染类。一幅完整的场景是通过多个特效渲染类叠加起来实现的。你可以随时修改渲染类以获得更好地显示效果。
每一个渲染类都是短小的仅实现特定渲染细节的。不要试图将渲染类设计成大而全且复杂的类。
有心的朋友可能会注意到我们的渲染类有较多的冗余代码,如果必要,您可以将它适当抽象一下,然后提交到我们的开源项目中,我在此对您先表示感谢。
类名 | 作用 |
DrawAnimal | 游戏主对象的渲染特效,无对应的控制类 |
DrawAutoTip | 自动提示的渲染特效 |
DrawBackGround | 游戏背景的渲染特效,无对应的控制类 |
DrawBomb | 炸弹渲染特效 |
DrawDisappear | 消除渲染特效 |
DrawExchange | 交换渲染特效 |
DrawExplosion | 爆炸渲染特效 |
DrawFill | 跌落渲染特效 |
DrawGrid | 网格渲染特效,无对应的控制类 |
DrawLife | 生命渲染特效,无对应的控制类 |
DrawLifeAdd | 获得生命渲染特效 |
DrawLifeDel | 失去生命渲染特效 |
DrawLoading | 游戏加载渲染特效 |
DrawMenu | 菜单绘制渲染特效 |
DrawMonster | 怪兽渲染特效 |
DrawResultScore | 记分牌渲染特效 |
DrawScore | 成绩渲染特效,无对应的控制类 |
DrawSingleScore | 成绩提示渲染特效 |
DrawTimeBar | 时间进度条渲染特效 |
DrawTip1 | 提示1渲染特效 |
DrawTip2 | 提示2渲染特效 |
5、elong.CrazyZomby.Interaction,人机交互类,目前实现的主要是触摸事件的处理机制。
类名 | 作用 |
ScreenTouch | 屏幕触摸处理类,处理所有屏幕触碰的事件,并转换为特定的控制消息 |
TouchArea | 供菜单类使用的触摸区域定义 //定义触摸区域 public enum E_TOUCHAREA { NONE, MENU_TIME_MODE, MENU_LIFE_MODE, MENU_ABOUT, MENU_EXIT, RESULT_CONTINUE, RESULT2, MAX, } |
TouchMsg | 触摸动作消息,与TouchArea捆绑使用,识别出触摸到了哪个TouchArea |