cocos2d | 您所在的位置:网站首页 › 横版格斗小游戏 › cocos2d |
本文实践自 Allen Tan 的文章《How To Make A Side-Scrolling Beat ‘Em Up Game Like Scott Pilgrim with Cocos2D – Part 1》,文中使用Cocos2D,我在这里使用Cocos2D-x 2.0.4进行学习和移植。在这篇文章,将会学习到如何制作一个简单的横版格斗过关游戏。在这当中,学习如何跟踪动画状态、碰撞盒、添加方向键、添加简单敌人AI和更多其它的。 步骤如下: 1.新建Xcode工程,工程名为"PompaDroid",去除"Box2D"选项,勾选"Simple Audio Engine in Cocos Denshion"选项; 2.添加游戏场景类GameScene,派生自CCScene类。添加GameLayer类和HudLayer类,派生自CCLayer类。删除HelloWorldScene.h和HelloWorldScene.cpp文件。 3.HudLayer类增加一个方法: 1 CREATE_FUNC(HudLayer);和GameLayer类增加一个方法: 1 CREATE_FUNC(GameLayer);4.文件GameScene.h代码如下: #include "cocos2d.h" #include "GameLayer.h" #include "HudLayer.h" USING_NS_CC; class GameScene:public CCScene { public: //构造函数 GameScene(); //析构函数 ~GameScene(); virtual bool init(); CREATE_FUNC(GameScene); //利用cocos2d-x中的宏定义实现Get和Set方法 CC_SYNTHESIZE(GameLayer*, _gameLayer, GameLayer); CC_SYNTHESIZE(HudLayer*, _hudLayer, HudLayer); }; 文件GameScene.cpp代码如下: GameScene::GameScene(void) { //在构造函数中将指针置空防止野指针 _gameLayer = NULL; _hudLayer = NULL; } GameScene::~GameScene(void) { } bool GameScene::init() { bool bRet = false; do { CC_BREAK_IF(!CCScene::init()); //初始化游戏层 _gameLayer = GameLayer::create(); //将该层加在0的位置数越小越在下面 this->addChild(_gameLayer,0); //初始化游戏的虚拟手柄层 _hudLayer = HudLayer::create(); //将该层加在1的位置1比0大,所以手柄层在游戏层的上面 this->addChild(_hudLayer,1); bRet = true; } while (0); return bRet; } 5.修改AppDelegate.cpp文件,代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 //#include "HelloWorldScene.h" #include "GameScene.h"bool AppDelegate::applicationDidFinishLaunching() { //... // create a scene. it's an autorelease object //CCScene *pScene = HelloWorld::scene(); CCScene *pScene = GameScene::create(); //... } 6.编译运行,此时只是空空的界面。 7.下载本游戏所需资源,将资源放置"Resources"目录下; |
CopyRight 2018-2019 实验室设备网 版权所有 |