cocos2d-x入门学习(四)跨版本代码移植实例之【微信飞机大战】

时间:2023-02-07 18:34:56

《飞机大战》源代码作者是:fusijie,他在博客中详细解读了代码和算法,这里就不再赘述。

其博客地址http://  www.eoeandroid.com/home.php?mod=space&uid=1087107&do=blog&view=me&from=space&page=2
源码:VS2010+cocos2d-x 2.2.0版https://  github.com/fusijie/Airplane.git

本案例是从cocos2d-x 2.2.0环境到cocos2d-x-2.2.2+VS2010。

下面进入我们的主题,示范的是如何把不同版本的cocos2d-x代码移植到新版本创建的工程项目中。

1、创建新的工程。用visual studio打开编译运行,使得HelloWorld界面正常显示。

(跟以前的版本不一样,cocos2d-x-2.2.2版本新建项目后,一般是无需设置任何的东西,只要直接编译运行即可以看到Hello World界面。
如果个别时候不能够显示,可以再次运行编译试试,也许就可以了。)
2、下载本游戏所需的资源,把下载的Resources文件夹的资源放置到新建项目的"Resources"目录下。
把下载的Classes里(除了AppDelegate的.h和.cpp外)的文件放置到新建项目的Classes目录下。
3、右键——添加——现有项目,把我们项目的Classes目录下文件都添加进去。
4、代码调整:
找到main.cpp修改屏幕
把eglView->setFrameSize(480, 320);改为eglView->setFrameSize(480, 800);

找到AppDelegate.cpp修改代码,
头文件中加入
#include "WelcomeScene.h"
再在WelcomeScene.cpp中把CCScene *pScene = HelloWorld::scene();改为CCScene *pScene = WelcomeScene::scene();
编译运行报错:
appdelegate.cpp(33): error C2039: “scene”: 不是“WelcomeScene”的成员
welcomescene.h(22) : 参见“WelcomeScene”的声明
error C3861: “scene”: 找不到标识符

找到WelcomeScene.h中加入static cocos2d::CCScene* scene();
在WelcomeScene.cpp中加入以下代码
CCScene* WelcomeScene::scene()
{
// 'scene' is an autorelease object
CCScene *scene = CCScene::create();
// 'layer' is an autorelease object
WelcomeScene *layer = WelcomeScene::create();
// add layer as a child to scene
scene->addChild(layer);
// return the scene
return scene;
}
再次编译运行,显示正常。能够计分,游戏完毕后会显示成绩。历史成绩也能保存。

 因为从cocos2d-x 2.2.0到cocos2d-x-2.2.2改动比较少,很轻松地就可以完成了!