cocos2d-x游戏《StopGMO》现阶段成品及代码发布
为什么80%的码农都做不了架构师?>>>
《StopGMO》,就是我第一篇博文中提到的《兔子大战转基因(蔬菜)》。它原本是个flash游戏(http://wanga.me/25523)。我克隆(山寨)它是因为我在学cocos2d-x的时候刚好玩了这个游戏,并且觉得比较简单,并且我没有美工,所以就决定克隆一下它。我的程序里面用到的图片资源基本来源于原来falsh版本的StopGMO,这些资源仅供学习和娱乐,希望没有侵犯原来游戏的版权。
以下链接是代码及资源的链接(其中包含一个编译为android可运行程序的apk安装包(应用android2.2的api编译)):
http://www.oschina.net/code/snippet_115087_17123
暂时只添加了一种怪物--胡萝卜。如果要添加新的怪物,可以继承代码中的Enemy类来添加新的怪物类。
目前的主角也只能使用一种武器--锄头。如果要添加新的武器,可以继承代码中的Weapon类来添加新的武器类。
现在的主角是处于无敌状态的,因为我在代码中进行了攻击的检测,但是并没有调用玩家的hurt()方法。
/
关于程序的结构:
GameRoot作为一个静态的类,负责图片资源的初始化、场景的替换等。
SceneGame作为一个游戏的场景类。它包含了HudLayer跟GameLayer。其中HudLayer是负责接受并解析用户输入的,而GameLayer是负责游戏主要事件逻辑控制的。而SceneGame的作用就是将HudLayer解析的控制输入传输到GameLayer里。
HudLayer负责接受和解析用户输入。包括虚拟手柄和按键以及菜单按钮等。(虚拟手柄我用了一个现有的库:Sneaky library)。
GameLayer负责游戏事件的逻辑控制。它每一帧都调用gameLogic方法。该方法中处理包括inputUpdate();spawnUpdate();bulletUpdate();enemyUpdate();viewpointUpdate();等。
最后得说一下,我用的cocos2d-x的版本是cocos2d-2.1beta3-x-2.1.0。其他版本的库在编译时,源文件可能需要有稍许修改。
/
将来的改进:
1.最近我在看一本书:《游戏编程精粹1》。里面提到了一个思想:数据驱动。我感觉我的程序是可以应用这个思想的。Enemy不再派生出Carrot,Corn等怪物类。因为Carrot,Corn等怪物的行为其实是完全一样的,只是移动速度、攻击力、贴图等不同。所以其实可以编写一个XML文件来保存速度、攻击力、贴图名称等数据。在Enemy实例化的时候提取XML文件的数据即可生成类似Carrot,Corn等不同种的怪物了。Weapon也是可以应用这种思想的。
2.尽量少用new跟delete。Enemy或者Bullet等在设置为die以后都不是直接delete,而是为其添加一个布尔量IsUsed,在die后设置为false。表示这个实例已经死亡了。在下一次需要new的时候,我们不用new,而是修改那些IsUsed == false的实例的速度、攻击力等参数,模拟一次new。
3.将子弹变成一个CCSprite。子弹不再是隐形的子弹,而是具有动画的,并且可以设置特定轨迹的。就像合金弹头里面的一样。
4.还在想。。。
/
工作进度:
进度可能会很慢,因为我现在正在搞毕业设计。并且我也不怎么想搞这个游戏了,我想搞另外一个类似涂鸦跳跃的刷分游戏。
转载于:https://my.oschina.net/arthas/blog/100306
cocos2d-x游戏《StopGMO》现阶段成品及代码发布相关推荐
- 《Cocos2d 跨平台游戏开发指南(第2版)》一1.9 添加动作到精灵
本节书摘来异步社区<Cocos2d 跨平台游戏开发指南(第2版)>一书中的第1章,第1.9节,作者: [印度]Siddharth Shekar(谢卡)译者: 武传海 责编: 胡俊英,更多章 ...
- iOS cocos2d 2游戏开发实战(第3版)---你的第一个游戏!
2019独角兽企业重金招聘Python工程师标准>>> 随着苹果公司不断地创新与发展,新的iPhone 5.iPad 4以及iPad mini产品相继问世,包括iOS与Xcode在内 ...
- 初探使用iOS 7 Sprite Kit与Cocos2d开发游戏的对比(一家之言)
初探使用iOS 7 Sprite Kit与Cocos2d开发游戏的对比 初探使用iOS 7 Sprite Kit与Cocos2d开发游戏的对比 发布于:2013-07-18 11:00阅读数:1984 ...
- iOS cocos2d 2游戏开发实战(第3版)
<iOS cocos2d 2游戏开发实战(第3版)> 基本信息 原书名:Learn cocos2d 2: Game Development for iOS 作者: (美)Steffen I ...
- 初探使用iOS 7 Sprite Kit与Cocos2d开发游戏的对比
前言 iOS7 beta发布后,大部分开发者和用户的注意力都集中在了iOS 7的全新UI交互设计界面上.一直负责硬件工业设计的Jony Ive首次全面负责苹果的软件和硬件设计工作,自然要把他自己的设计 ...
- 【通知】▁▂▃ Himi 最新著作《iOS游戏编程之从零开始—Cocos2d-x与cocos2d引擎游戏开发》★书籍源码+第4/5/6样章★-免费下载★ ▃▂▁
2013年新年,Himi的第二本著作:<iOS游戏编程之从零开始-Cocos2d-x与cocos2d引擎游戏开发>一书正式发售: (大家可以到新华书店.淘宝.拍拍.当当.亚马逊等进行购买) ...
- div+css静态网页设计游戏网站设计——仿阴阳师游戏官网首页(1页) 学生动手游页设计模板下载 网游大学生HTML网页制作作品 简单游戏网页设计成品 dreamweaver学生网站模板
HTML5期末大作业:仿阴阳师游戏网站设计--仿阴阳师游戏官网首页(1页) 学生动手游页设计模板下载 网游大学生HTML网页制作作品 简单游戏网页设计成品 dreamweaver学生网站模板 常见网页 ...
- Cocos2D手机游戏开发之优化篇
Cocos2D手机游戏开发之优化篇 在这个手机游戏盛行已久的年代,一款产品想要博得更多用户的喜爱就要在细节上做得更加到位.而游戏的优化在这里面起到了非常关键的作用.试想下,一款画面和玩法都深受用户喜欢 ...
- Silverlight C# 游戏开发:未写代码先设计
本文只有两个主题: 1.游戏设计清晰的必要 2.循环逻辑的代码设计 游戏设计: 未写代码先设计,这是一个非常重要的建议,如果在写代码前还不知道要开发一个什么游戏,那么会遇上很多问题,这些问题包括: 代 ...
最新文章
- 【邓侃】哈佛大学机器翻译开源项目 OpenNMT的工作原理
- EOS经济系统分析[转载]
- iis php 0x80070032,访问网站时 HTTP 错误 404.17 - Internet Information Services | Microsoft Docs...
- Pytorch(一) --线性模型
- struct类型重定义 不同的基类型_C++学习大纲:联合类型
- 怎么安装winubuntu双系统_U盘安装ubuntu双系统及如何恢复Windows MBR教程
- 【紫书第十一章】图论模型与算法入门
- MySQL-快速入门(16)MySQL Cluster,集群技术
- Spring源码下载编译全过程!超详细的步骤!!!
- 在matlab中配置凸优化所需的求解器cvx、mosek之避雷
- 【高等数学】第 2 讲 两个重要的极限定理
- 老照片:一个澳洲人在大清国的徒步旅行
- 解析HTTP协议六种请求方法
- UE4中程序驱动的LookAt动画
- 4.多态(Thinking in java学习四)
- 林业调查规划资质全国林业单位办理认定标准和申请条件
- 驱动器能耗制动和制动电阻
- java图书借阅管理系统304
- vue 精简教程(四) vuerouter 路由
- 如何应对stata do文件打开乱码问题
热门文章
- 类和对象——登堂入室
- 手把手教你安装强大的动画设计工具Maxon Cinema 4D Studio R20 for Mac20.059中文特别版
- 芯片验证漫游指南_利用微纳微尺度3D打印技术制备微流控液滴生成芯片
- docker内搭建nacos服务
- 树莓派python gpio 模仿iic_树莓派-用GPIO虚拟I2C
- 苹果手机如何解压php文件,centos怎么解压文件
- Python生成随机密码【英文大小写+数字】
- mysql清除表空间导入_MySQL 清除表空间碎片
- 夜间肌肤护肤要做到6点 轻松摆脱各种肌肤问题
- android 开发录音那些事(录音权限授权及判断录音权限是否拒绝处理)