四、小贝学习cocos2dx——ecplise编译cocos2dx项目二
2014-04-27 12:29
190 查看
上周,cocos2dx 版本3的已经正式发布了。
第三篇,我写到了,利用ecplise进行编译cocos2dx的项目。也列出了我遇到的几个常见问题。
如.so文件没有权限生成、org包没有导入、sdk版本没有对应上等问题。
但是这些都只是根据helloworld这个基本项目来的。我的意思是说,helloworld项目只有一个"场景"。(备注:cocos2dx的概念在后面再补充上。) 但是,我在学习到利用到"导演"进行切换场景时,在ecplise就遇到问题了。
功能需求:
在helloworld项目的基础上,点击"按钮",就出现一段字符串"xiaobei"。
目的: 学习切换场景
我Classes目录新建立了otherScene.cpp 以及otherScene.h作为新场景用。
在vs2012,点击Classes。右键
![](http://img.blog.csdn.net/20140427114415890?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxNDc5NTcyMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20140427114530250?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxNDc5NTcyMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
按照这样的方式建立了otherScene.cpp文件。
otherScene.h代码:
otherScene.cpp代码:
运行结果:
![](http://img.blog.csdn.net/20140427120024796?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxNDc5NTcyMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
![](http://img.blog.csdn.net/20140427120036062?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxNDc5NTcyMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
到这里,切换场景的工作基本上完成了。最后,我把这个项目按照上篇文档的操作,导入ecplise中
但是在run的时候,报了这个错误:
![](http://img.blog.csdn.net/20140427121848437?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxNDc5NTcyMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
由于这个错误,导致.so无法生成. 而这个问题的产生是由于安卓和c++的"中间组件",没有导入otherScene的信息。
在我们导入到ecplise的项目中,有个jni目录。其中jni叫java native interface(java原生接口),由于它的存在,才使得安卓可以与c++进行交互。
打开jni目录里面的Android.mk文件
![](http://img.blog.csdn.net/20140427122816093?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxNDc5NTcyMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
补充完,之后,再次run
![](http://img.blog.csdn.net/20140427122843750?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxNDc5NTcyMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
就可以看到效果了。
第三篇,我写到了,利用ecplise进行编译cocos2dx的项目。也列出了我遇到的几个常见问题。
如.so文件没有权限生成、org包没有导入、sdk版本没有对应上等问题。
但是这些都只是根据helloworld这个基本项目来的。我的意思是说,helloworld项目只有一个"场景"。(备注:cocos2dx的概念在后面再补充上。) 但是,我在学习到利用到"导演"进行切换场景时,在ecplise就遇到问题了。
功能需求:
在helloworld项目的基础上,点击"按钮",就出现一段字符串"xiaobei"。
目的: 学习切换场景
我Classes目录新建立了otherScene.cpp 以及otherScene.h作为新场景用。
在vs2012,点击Classes。右键
按照这样的方式建立了otherScene.cpp文件。
otherScene.h代码:
#include "cocos2d.h" class otherScene:public cocos2d::CCLayerColor { public: virtual bool init(); static cocos2d::CCScene* scene(); CREATE_FUNC(otherScene); };
otherScene.cpp代码:
#include "otherScene.h" USING_NS_CC; //建立场景 CCScene* otherScene::scene() { CCScene *scene = CCScene::create(); otherScene *layer = otherScene::create(); scene->addChild(layer); return scene; } //otherScene初始化方法 bool otherScene::init() { if ( !CCLayerColor::initWithColor(ccc4(0,0,0,255)) ) { return false; } CCSize visibleSize = CCDirector::sharedDirector()->getVisibleSize(); CCLabelTTF* labelTTF = CCLabelTTF::create("xiaobei","arial",20); labelTTF->setPosition(ccp(visibleSize.width/2,visibleSize.height/2)); this->addChild(labelTTF); return true; }HelloWorldScene.cpp 关闭方法代码如下:
void HelloWorld::menuCloseCallback(CCObject* pSender) { CCScene* otherscene = otherScene::scene(); CCDirector::sharedDirector()->replaceScene(otherscene); /*#if (CC_TARGET_PLATFORM == CC_PLATFORM_WINRT) || (CC_TARGET_PLATFORM == CC_PLATFORM_WP8) CCMessageBox("You pressed the close button. Windows Store Apps do not implement a close button.","Alert"); #else CCDirector::sharedDirector()->end(); #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS) exit(0); #endif #endif*/ }
运行结果:
到这里,切换场景的工作基本上完成了。最后,我把这个项目按照上篇文档的操作,导入ecplise中
但是在run的时候,报了这个错误:
由于这个错误,导致.so无法生成. 而这个问题的产生是由于安卓和c++的"中间组件",没有导入otherScene的信息。
在我们导入到ecplise的项目中,有个jni目录。其中jni叫java native interface(java原生接口),由于它的存在,才使得安卓可以与c++进行交互。
打开jni目录里面的Android.mk文件
补充完,之后,再次run
就可以看到效果了。
相关文章推荐
- 三、小贝学习cocos2dx——ecplise编译cocos2dx项目
- 二、小贝学习cocos2dx——python创建cocos2dx项目
- Docker学习记录(三)-构建非跨平台项目编译环境
- 创建新的Cocos2dx 3.0项目并解决一些编译问题
- 【iOS-cocos2d-X 游戏开发之四】Cocos2dX创建Android NDK新项目并编译导入Eclipse中正常运行!
- 详解如何将cocos2dx项目编译到Android平台上的(方式一:Cywin+NDK)
- Maven学习记录3——创建、编译、打包、运行项目
- ant学习笔记(五)基于单元测试的j2se项目,包括编译、测试、打包、生成报告、上传ftp
- eclipse开发cocos2dx 3.2环境搭建之三: ccp-tests项目编译 (this project is not a CDT project)
- 整合Cocos2dX的Android项目到Xcode项目中,Xcode编写&编译代码
- Maven学习总结(10)——使用Maven编译项目gbk的不可映射问题
- thinkphp学习笔记3—项目编译和调试模式
- cocos2d-x学习之旅(五):1.5 使用eclipse编译cocos2d-x示例项目,创建cocos2d-x android项目并部署到真机
- Cocos2dx 学习笔记整理----在项目中使用图片(一)
- quick cocos 或者 Cocos2dx 项目下的Android.mk文件的学习
- 【ant项目构建学习点滴】--(1)简单编译
- [转]Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
- Mac下配置Android NDK环境并搭建Cocos2d-x环境并Eclipse正常编译运行Cocos2dX自带TestsDemo项目
- 开始cocos2dx学习小记:MacOS下使用cocos2dx创建项目遇到permission denied
- TX2440 项目实战-2440init.s 祥解 (ADS1.2编译) arm汇编基础学习终结