cocos2d 您所在的位置:网站首页 横版格斗小游戏 cocos2d

cocos2d

2024-07-17 22:07| 来源: 网络整理| 查看: 265

本文实践自 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"目录下; 8.用Tiled工具打开pd_tilemap.tmx,就可以看到游戏的整个地图: 地图上有两个图层:Wall和Floor,即墙和地板。去掉每个图层前的打钩,可以查看层的组成。你会发现下数第四行是由两个图层一起组成的。每个tile都是32x32大小。可行走的地板tile位于下数三行。 9.打开GameLayer.h文件,添加如下代码&#



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有