为什么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. 面向对象编程(OOP)----BLUE大师JS课堂笔记(二)
  2. 200 万年薪,却招不到清华姚班毕业生!能上姚班的都是什么人?
  3. R语言使用moments包计算偏度(Skewness)和峰度(Kurtosis)实战:计算偏度(Skewness)和峰度(Kurtosis)、确定样本数据是否具有与正态分布匹配的偏度和峰度(假设检验)
  4. python获取Pandas列名的几种方法
  5. 郁金香2013网授汇编逆向与外挂 [ 91课,全 ]
  6. ROS 总结(三):Moveit!配置助手
  7. 面向对象的程序设计-模块二课程总结
  8. 设计模式:不可变的嵌入式构建器
  9. python 系统学习笔记(十二)---os os.path os.walk
  10. python分类算法的应用_Python使用sklearn库实现的各种分类算法简单应用小结
  11. Г函数(伽马函数)、分布
  12. 壳管式热交换器行业调研报告 - 市场现状分析与发展前景预测
  13. Google Android 向华为“闭源”!华为手机迎来至暗时刻!
  14. Windows批处理(.bat)常用命令教程
  15. 关于艾宾浩斯曲线的一点思考
  16. 颜色空间转换-从RGB到LCH-亮度饱和度色度
  17. 树莓派环境处理_树莓派安装raspbian并配置开发环境
  18. 让电脑前后面板音频插孔同时输出声音方法
  19. 2022-01-18 Caffe+Window11+Visual Studio 2015+Python3.5 CPU+GPU 配置详细教程
  20. 再见2022,你好2023:八年程序媛老兵的践行、思考与展望

热门文章

  1. Java企业级开发框架(三):changelog——1.2.0-SNAPSHOT
  2. windows Server 2008远程桌面服务的配置及授权
  3. 【2021-11-29】JS逆向之J简壁纸
  4. 【Revit二次开发】标高
  5. [涨停战法] 以涨停板为信号抓短线爆发力牛股
  6. 【译】Delta Lake 0.5.0介绍
  7. 科诚Godex ZX430 打印机驱动
  8. Winform调用WebApi接口实现上传和接收JSON数据
  9. ZYNQ之FPGA学习----Vivado功能仿真
  10. 若依ruoyi左侧菜单栏增加新的主题色