为什么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》现阶段成品及代码发布相关推荐

  1. 《Cocos2d 跨平台游戏开发指南(第2版)》一1.9 添加动作到精灵

    本节书摘来异步社区<Cocos2d 跨平台游戏开发指南(第2版)>一书中的第1章,第1.9节,作者: [印度]Siddharth Shekar(谢卡)译者: 武传海 责编: 胡俊英,更多章 ...

  2. iOS cocos2d 2游戏开发实战(第3版)---你的第一个游戏!

    2019独角兽企业重金招聘Python工程师标准>>> 随着苹果公司不断地创新与发展,新的iPhone 5.iPad 4以及iPad mini产品相继问世,包括iOS与Xcode在内 ...

  3. 初探使用iOS 7 Sprite Kit与Cocos2d开发游戏的对比(一家之言)

    初探使用iOS 7 Sprite Kit与Cocos2d开发游戏的对比 初探使用iOS 7 Sprite Kit与Cocos2d开发游戏的对比 发布于:2013-07-18 11:00阅读数:1984 ...

  4. iOS cocos2d 2游戏开发实战(第3版)

    <iOS cocos2d 2游戏开发实战(第3版)> 基本信息 原书名:Learn cocos2d 2: Game Development for iOS 作者: (美)Steffen I ...

  5. 初探使用iOS 7 Sprite Kit与Cocos2d开发游戏的对比

    前言 iOS7 beta发布后,大部分开发者和用户的注意力都集中在了iOS 7的全新UI交互设计界面上.一直负责硬件工业设计的Jony Ive首次全面负责苹果的软件和硬件设计工作,自然要把他自己的设计 ...

  6. 【通知】▁▂▃ Himi 最新著作《iOS游戏编程之从零开始—Cocos2d-x与cocos2d引擎游戏开发》★书籍源码+第4/5/6样章★-免费下载★ ▃▂▁

    2013年新年,Himi的第二本著作:<iOS游戏编程之从零开始-Cocos2d-x与cocos2d引擎游戏开发>一书正式发售: (大家可以到新华书店.淘宝.拍拍.当当.亚马逊等进行购买) ...

  7. div+css静态网页设计游戏网站设计——仿阴阳师游戏官网首页(1页) 学生动手游页设计模板下载 网游大学生HTML网页制作作品 简单游戏网页设计成品 dreamweaver学生网站模板

    HTML5期末大作业:仿阴阳师游戏网站设计--仿阴阳师游戏官网首页(1页) 学生动手游页设计模板下载 网游大学生HTML网页制作作品 简单游戏网页设计成品 dreamweaver学生网站模板 常见网页 ...

  8. Cocos2D手机游戏开发之优化篇

    Cocos2D手机游戏开发之优化篇 在这个手机游戏盛行已久的年代,一款产品想要博得更多用户的喜爱就要在细节上做得更加到位.而游戏的优化在这里面起到了非常关键的作用.试想下,一款画面和玩法都深受用户喜欢 ...

  9. Silverlight C# 游戏开发:未写代码先设计

    本文只有两个主题: 1.游戏设计清晰的必要 2.循环逻辑的代码设计 游戏设计: 未写代码先设计,这是一个非常重要的建议,如果在写代码前还不知道要开发一个什么游戏,那么会遇上很多问题,这些问题包括: 代 ...

最新文章

  1. 【邓侃】哈佛大学机器翻译开源项目 OpenNMT的工作原理
  2. EOS经济系统分析[转载]
  3. iis php 0x80070032,访问网站时 HTTP 错误 404.17 - Internet Information Services | Microsoft Docs...
  4. Pytorch(一) --线性模型
  5. struct类型重定义 不同的基类型_C++学习大纲:联合类型
  6. 怎么安装winubuntu双系统_U盘安装ubuntu双系统及如何恢复Windows MBR教程
  7. 【紫书第十一章】图论模型与算法入门
  8. MySQL-快速入门(16)MySQL Cluster,集群技术
  9. Spring源码下载编译全过程!超详细的步骤!!!
  10. 在matlab中配置凸优化所需的求解器cvx、mosek之避雷
  11. 【高等数学】第 2 讲 两个重要的极限定理
  12. 老照片:一个澳洲人在大清国的徒步旅行
  13. 解析HTTP协议六种请求方法
  14. UE4中程序驱动的LookAt动画
  15. 4.多态(Thinking in java学习四)
  16. 林业调查规划资质全国林业单位办理认定标准和申请条件
  17. 驱动器能耗制动和制动电阻
  18. java图书借阅管理系统304
  19. vue 精简教程(四) vuerouter 路由
  20. 如何应对stata do文件打开乱码问题

热门文章

  1. 类和对象——登堂入室
  2. 手把手教你安装强大的动画设计工具Maxon Cinema 4D Studio R20 for Mac20.059中文特别版
  3. 芯片验证漫游指南_利用微纳微尺度3D打印技术制备微流控液滴生成芯片
  4. docker内搭建nacos服务
  5. 树莓派python gpio 模仿iic_树莓派-用GPIO虚拟I2C
  6. 苹果手机如何解压php文件,centos怎么解压文件
  7. Python生成随机密码【英文大小写+数字】
  8. mysql清除表空间导入_MySQL 清除表空间碎片
  9. 夜间肌肤护肤要做到6点 轻松摆脱各种肌肤问题
  10. android 开发录音那些事(录音权限授权及判断录音权限是否拒绝处理)