山寨腾讯“爱消除”游戏之框架总结

来源:互联网 发布:用友u8利润表没有数据 编辑:程序博客网 时间:2024/05/17 05:00

山寨腾讯“爱消除”游戏教程到今天就全部结束了,今天我们对前面所介绍的内容进行一个总结。

【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





6 0