欢迎访问移动开发之家(rcyd.net),关注移动开发教程。移动开发之家  移动开发问答|  每日更新
页面位置 : > > 内容正文

Cocos2d-x 版本小游戏 《是男人就下100层》 项目开源

来源: 开发者 投稿于  被查看 18108 次 评论:53

Cocos2d-x 版本小游戏 《是男人就下100层》 项目开源


这个是很久就开始动手写的一个小游戏了,直到最近才把它收尾了,拖拖拉拉的毛病总是很难改啊。 

项目是基于 cocos2d-x v2.2 版本 ,目前只编译到了 Win8 平台上,并且已经上传到了商店,支持 ARM 以及 X86,


项目介绍

这毕竟是个小游戏,本身其实没有什么技术难点,主要在于项目的设计,分为如下几个小模块

 

玩家类我用了单例模式,继承自CCSprite,因为贯穿游戏一直会有玩家存在,在这个版本里也不会有第二个,所以单例成了我很好的选择。 

封装了 运动、血量 等。整体的游戏运动采取了背景运动而人不动的方式,感觉在这里这种要更容易掌控一些,分层很明显。

 

这里我参照了 

然后根据不同的平台类型,继承该基类实现不同效果,比如跳起,伤害,左右平移等。 

 分别有:NormalBlock (最普通的平台)

 还有个 BlockFactory 工厂类, 负责在恰当的时候创建合适的平台,创建的规则是随机类型,位置是从预先定义的几个里面随机取。

对于所有平台的管理, 本来最好应该是做个缓存池的,但是我发现这个性能降低实在是可以忽略,所以。。。

 

输入这里,定义了一个基类,InputBase,因为最终肯定有几种输入的方式:PC(键盘、鼠标)、手势、重力感应等,所以这个从一开始就要考虑到。具体的处理方式是

然后有输入事件的时候就让玩家按照这个速度来运行, 但是现在实际的效果感觉还不太理想。

 

 场景就是那么基础的几个了。。。游戏主界面采用了MVC的模式来设计,CCScene 作为 Controller ,其它的Layer 作为View。其它页面都比较简单,单Layer 实现。逻辑也都放在Layer里了。

另外,专门定义了一个 HideLayer ,目的是实现弹出对话框的效果,考虑到原场景中可能会有CCMenu,我将该 Layer 的 优先级设为了 与 CCMenu 相同,因为后添加的原因,所以总能屏蔽

Menu 的事件, 

还有个比较有意思的是: 所有的场景我都继承了 IBackableScene 接口,这是我自己定义的一个抽象类,因为我发现对于 “后退” 按钮的处理在游戏中是非常常见的,所以这个接口里


 


Github地址:https://github.com/jeekun/DownFloors


参考游戏:

http://www.cnblogs.com/floyd/archive/2010/11/03/1868323.html

资源来源:

http://www.4399.com/flash/1164_1.htm

 

 

 

 

 

 

 

 

相关频道:

用户评论