这次主要是给大家讲解官网的飞机游戏的代码,并且对其中的大多数地方进行了注释。花了10天才把这个弄懂,期间经历了很多坎坷。不过做完的那一刻真的感觉学到看很多东西,现在分享我的理解给大家,有什么地方不对的欢迎大家指出。开发环境是在VS2010 ,cocos2d-x 2.0.4,部分环境不一样的可能会出错。
2 游戏娱乐的界面。点开了Play Game就会出现
这个蓝色按钮是放子弹的按钮。 黑色的圈圈是控制飞机走的,飞机可以放子弹,子弹可以打中炸弹,当炸弹打中了玩家,游戏结束.
3 最后一个是GameOverScene游戏结束窗口。当炸弹击中玩家之后会出现。
点Replay将重新进入到游戏界面.
1 头文件
2 这个是游戏要用到的cpp文件,下面对这两个进行讲解。
主要的类介绍
AppDelegate 类。 游戏的启动类。类里面有关于启动窗口的函数
Bullet类 。 子弹的生成 类。 这个类里面主要是包含了子弹的初始化和定义
BulletManager类。 管理子弹的生成。里面规定了最多能生成多少子弹,以及子弹的射击动作.
BulletListener类. 子弹的监听类。 主要负责监控子弹是否打到了炸弹
Controller类 主要是控制精灵的移动,后面的子弹的移动和玩家移动类都会继承这个类
Entity类 主要是用来监控画面中是否打中玩家以及玩家信息的初始化和子弹和炸弹的处理类,这个是本游戏中最复杂的类,这里的继承让我学到了很多知识.
GameManager类 主要是控制进入哪个页面,里面有一个枚举标记了三个窗口,这个类可以管理进入任意一个窗口。
GameMenu类 这个是目录窗口的类
GameOverScene类 这个是游戏结束窗口的类
GameScene类 这个是玩游戏的窗口的类
GaneSceneBgLayer类 这个是玩游戏窗口的背景图片生成的类
GameScenePlayerLayer 这个是人物,里面要创建玩家,怪物炸弹,和子弹发射器
GlobalParam类 这个是游戏中存放所有要使用文件的文件名的类
Monster类 这个是怪物炸弹初始化的类,类似于前面的子弹
MonsterManger类 和BulletManager一样的功能
Player类 这个是创建玩家人物的类
SimpleMoveController类 这个是设置子弹和炸弹自动动作的类
XSystem类 这个是将屏幕坐标转换成实际坐标的类。(图片的屏幕坐标和实际坐标并不一样,加入一个1024*640的背景图片和一个480*320的坐标一个是实际坐标一个是屏幕坐标)
这里我们还会用到一个我在网上找的SneakInput类,主要是控制游戏中发子弹按钮的生成和玩家移动的实现,后面会讲到
最后给大家看下我做的类图,大体上了解程序中监控是如何实现的,然后后面的讲解大家就比较容易懂了,这里的箭头代表的是继承。