[cocos2d-x 学习] 如何编译自己的项目(从win32交叉编译到android)

前言

学习cocos2d-x,很多人都是从 win32 开发然后直接交叉编译到 android project,而中间过程怎么弄?

如何交叉编译

新建 win32 程序(可以参照这里),写好自己的代码,假设我们新建一个类PractiseCocos2d,代码如下:
#ifndef __PRACTISE_COCOS2D_H__
#define __PRACTISE_COCOS2D_H__

#include "cocos2d.h"
// 播放声音
#include "SimpleAudioEngine.h"

class Practise : public cocos2d::CCLayerColor {
public:
	virtual bool init();
	static cocos2d::CCScene* scene();
	void callBack(CCObject* pSender);
	void menuPushSceneCallBack(CCObject* pSender);
	void menuReplaceSceneCallBack(CCObject* pSender);
	void menuPopSceneCallBack(CCObject* pSender);
	CREATE_FUNC(Practise);// 添加启动的回调函数
	void onEnter();
	Practise *layer;
	cocos2d::CCSprite *pSprite;
	Practise():layer(NULL), pSprite(NULL){};
	~Practise();
};
#endif // __PRACTISE_COCOS2D_H__
至于实现就不贴了有点乱 呵呵

然后修改 AppDelegate.cpp 中applicationDidFinishLaunching() 方法,修改如下:
[cocos2d-x 学习] 如何编译自己的项目(从win32交叉编译到android)_第1张图片
至于实现不是特别重要,主要是 scene 方法
CCScene* Practise::scene()
{
	CCScene* scene = CCScene::create();
	Practise* layer = Practise::create();
	// layer->autorelease();
	scene->addChild(layer);
	return scene;
}

大概跑出来的就是下面
[cocos2d-x 学习] 如何编译自己的项目(从win32交叉编译到android)_第2张图片

弄到这里,大概我们的win32程序就ok了,我们添加了  PractiseCocos2d.h 头文件和实现 PractiseCocos2d.cpp 文件,现在要把这个自己写的东西用ndk编译android project,还记得用 create-android-project.bat 创建过 android project 吗(这里),编译的时候需要用到 proj.android 这个文件夹中的所有东西。大概需要以下步骤:

1、创建出 android project,配置信息写好


2、复制android project 中的 proj.android 到要编译的 win32 中

假设工程为 PractiseCocos2d,那么打开 PractiseCocos2d,复制到里面。

3、修改 proj.android/jni/Android.mk 文件

面找到 LOCAl_SRC_FILES,再后面加上你要编译的文件,上面工程中加入了 PractiseCococs2d.cpp, 把它加入到里面(../../代表上上层目录,就是classes同级目录),然后打开 cygwin 编译就可以了,cygwin 编译可以参考这里第二大点第二小点。(helloworldScene.cpp 可以选择性编译,具体看情况),如果多个文件,多加几个文件就可以了
[cocos2d-x 学习] 如何编译自己的项目(从win32交叉编译到android)_第3张图片

编译完成就可以在导入到eclipse跑起来了。

--> 下一篇:cocos2d-x之Scene(场景)学习

你可能感兴趣的:(android,android,框架,cocos2d-x,交叉编译)