将项目由win32移植到android平台 一、 快速搭建android开发环境 1、将服务器上的eclipse、java、android sdk、android ndk、cygwin、cocos2d-x文件夹拷贝到本地请注意保存的路径为英文、不包含空格、且不要过长。 2、 运行eclipse添加android-sdk的路径。(preferences->Android:SDK Location) 3、 添加ADT(Help->Install New Software:Work with) 4、添加java环境变量。 新建变量JAVA_HOME变量值为java目录的绝对路径。 在path中添加 %JAVA_HOME%\D:\android\Java\jdk1.6.0_20\bin%JAVA_HOME%\D:\android\Java\jdk1.6.0_20\jre\binD:\android\Java\jre6\bin5、运行一次Cygwin.bat 6、修改\cygwin\home\用户名\.bash_profile文件添加NDK_ROOT=/cygdrive/d/android/android-ndk-r8b export NDK_ROOT 7、 修改\cocos2d-2.0-x-2.0.3\create-android-project.bat中的如下路径 set _CYGBIN=e:\cygwin\bin set _ANDROIDTOOLS=e:\android\android-sdk\tools set _NDKROOT=e:\android\android-ndk-r8 二、 新建android项目 1、 运行create-android-project.bat创建新的android项目例如项目名称为Cocos2dDemo。 2、 将win32下完成的.cpp和.h文件拷贝到\Cocos2dDemo\Classes 3、将win32下使用的资源拷贝到\Cocos2dDemo\proj.android\assets 4、将cpp文件的路径、使用的头文件的目录加入到Android.mk文件。 5、打开Cygwincd 到/Cocos2dDemo/proj.android目录下 6、执行./build_native.sh进行编译 7、在eclipse中编译打包。 三、 补充 1、2.0以上版本的引擎基本无法在android模拟器上运行建议在xcode和vs上调试好直接在真机上运行。 2、2.0以上版本的引擎要求android的开发和运行环境都要2.2以上的sdk。
将项目由win32移植到ios 一、 创建ios项目 1、 安装XCode 2、执行install-templates-msvc.bat将模板添加到XCode 3、打开xcode选择Create a new Xcode project选择cocos2d-x模版 4、点击next填入项目名称Man 5、找到Man的主项目在这里新建一个iOS文件夹。点击create创建完成 6、删除Resource和Classes下的多余文件Helloworld的代码和资源 7、右键点击Resource 选择Add Files to "Man"... 7、将Man主项目文件夹下的Resource文件夹中的资源添加到当前工程。注意选择create folder references for any added folders只是添加一个引用 8、同样的方法添加源文件和头文件到Classes下 9、点击Run编译运行 二、 补充 1、Mac 平台的OS X需要10.6及以上版本 2、IOS平台需要4.0及以上版本 3、IOS真机支持iPad 1、iPad 2、iPad 3、 iPhone 3GS、iPhone 4、iPhone 4S、iPhone 5、iphone6、iPod Touch 3 and iPod Touch 4 不支持iPhone and iPhone 3G。
由于在原来的ADT的Eclipse环境中,用ndk_build工具生成了相应的各个.so库文件之后,eclipse工具就会自动把这些库导入到apk中。而Android Studio目前为止(0.86版本)还无法做到那么自动,但是我们可以通过以下方式进行。首先在Android Studio工程的app目录下创建整个jni目录,jni目录里写Android.mk、Application.mk以及各类C/C++和汇编源文件。然后跟原来一样,用ndk_build工具去编,然后工具会自动生成libs目录,里面还有每个你在Application.mk里所指定处理器架构的so文件。完成之后,编辑app目录下的build.gradle文件,为其添加以下代码:sourceSets {main {jniLibs.srcDirs = ['libs']}}完整的build.gradle文件如下所示:复制代码apply plugin: 'com.android.application'android {compileSdkVersion 20buildToolsVersion "20.0.0"defaultConfig {applicationId "com.adwo.gamecenter.civetcoffeegamecenter"minSdkVersion 9targetSdkVersion 20versionCode 1versionName "1.0"}buildTypes {release {runProguard falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}}sourceSets {main {jniLibs.srcDirs = ['libs']}}}dependencies {compile fileTree(dir: 'libs', include: ['*.jar'])compile 'com.android.support:appcompat-v7:20.0.0'}首先我简单介绍一下组件压缩包的组成Cocos2dx
实现Cocos2d-x中跨平台分享功能,需拷贝到您项目的Classes文件夹中
Platforms
原生的Android和iOS社会化组件SDK,需要您将库和资源拷贝到对应平台的项目中
doc
组件的集成文档;
Umeng_Cocos2dx_Demo_V1.0
Android部分的demo文件,可以安装在手机上看一下简单的分享效果和样式
Cocos2d-x虽然是一个跨平台的引擎,但是对于Android和IOS平台来说,具体的集成方式还是有一定的区别,这里分别介绍Android和IOS平台集成中不同的地方,然后再集中介绍跨平台通用的部分。
Android平台集成步骤:
步骤一:
下载Cocos2d-x组件(下载地址) 并且将jar包添加到build path 路径下,将res资源文件夹加入到你工程对应资源文件下。将Platforms/Android/controller目录下的com文件夹拷贝到您的Cocos2d-x项目Android平台的src目录下,并且在jni/Android.mk中的LOCAL_SRC_FILES下添加如下配置 (注意格式,否则会编译出错) :
../../Classes/Cocos2dx/Android/CCUMSocialController.cpp \
../../Classes/Cocos2dx/ShareButton/UMShareButton.cpp \
../../Classes/Cocos2dx/Common/CCUMSocialSDK.cpp
步骤二:
在Cocos2dxActivity子类的onCreate方法下添加如下代码,用来完成初始化步骤
// this为Cocos2dxActivity类型, 参数2为描述符,可随意修改.
CCUMSocialController.initSocialSDK(this, "com.umeng.social.share")
步骤三:
在代码中覆写Cocos2dxActivity子类的onActivityResult方法,用来实现回调方法。在onActivityResult添加如下代码 :
// 授权回调
CCUMSocialController.onActivityResult(requestCode, resultCode, data)
super.onActivityResult(requestCode, resultCode, data)
iOS平台集成步骤:
步骤一:
解压SDK压缩包,将Platforms/iOS文件夹和Cocos2dx文件夹拖入工程目录,并删除Cocos2dx/Android文件夹,添加后应该是这个效果:
步骤二:
添加系统需要的framework
Security.framework //用于系统加密处理
libiconv.dylib //QQ互联的库文件
SystemConfiguration.framework//QQ互联需要的framework
CoreGraphics.framework //QQ互联需要的framework
Social.framework //分享组件需要的framework,如果不使用twitter则不需要
libsqlite3.dylib //QQ互联需要的framework
libstdc++.dylib //C++的库文件
CoreTelephony.framework //QQ互联需要的framework
libz.dylib //QQ互联需要的framework
Accounts.framework //系统需要的framework,如果不使用twitter则不需要
步骤三:
实现系统的回调方法,在Xcode工程中的ios文件夹下的AppController.mm文件中加入下面的代码:
#import "UMSocial.h"
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
return [UMSocialSnsService handleOpenURL:url]
}
完成了上述准备工作之后,就可以开始正式的分享步骤了,友盟提供了多种分享样式,有精力的开发者可以使用底层接口,可以完全自由定制分享界面和样式,不过相信大部分开发者们使用第三方插件的初衷都是为了节省精力,所以这里就只介绍使用默认分享界面的方法,有更多需求的开发者们可以自己探索自定义界面接口部分。
步骤一:加入系统需要的头文件
// 授权回调
#include "Cocos2dx/Common/CCUMSocialSDK.h"
#include "Cocos2dx/ShareButton/UMShareButton.h"
// 使用友盟命令空间
USING_NS_UM_SOCIAL
// ...... 代码省略
// HelloWorld为cocos2d::CCLayer的子类
bool HelloWorld::init()
{
//////////////////////////////
// 1. super init first
if ( !CCLayer::init() )
{
return false
}
}
步骤二:分享按钮的创建
// 创建分享按钮, 参数1为按钮正常情况下的图片, 参数2为按钮选中时的图片,参数3为友盟appkey, 参数4为分享回调
UMShareButton *shareButton = UMShareButton::create("shareNormal.png","shareSelected.png", "你的友盟appkey", share_selector(shareCallback))
步骤三:设置分享平台及内容
// 显示在友盟分享面板上的平台
vector
* platforms = new vector
()
platforms->push_back(SINA)
platforms->push_back(RENREN)
platforms->push_back(DOUBAN)
platforms->push_back(QZONE)
platforms->push_back(QQ)
// 设置友盟分享面板上显示的平台
shareButton->setPlatforms(platforms)
// 设置文本分享内容
shareButton->setShareContent("umeng social Cocos2d-x sdk.")
// 设置要分享的图片, 图片支持本地图片和url图片, 但是url图片必须以http://或者https://开头
shareButton->setShareImage("/sdcard/header.jpeg")
// 设置按钮的位置
shareButton->setPosition(ccp(150, 180))
// 然后开发者需要将该按钮添加到游戏场景中
CCMenu* pMenu = CCMenu::create(shareButton, NULL)
pMenu->setPosition(CCPointZero)
this->addChild(pMenu, 1)
// ********************** 设置平台信息 ***************************
// CCUMSocialSDK *sdk = shareButton->getSocialSDK()
// sdk->setQQAppIdAndAppKey("设置QQ的app id", "appkey")
// sdk->setWeiXinAppId("设置微信和朋友圈的app id")
// sdk->setYiXinAppKey("设置易信和易信朋友圈的app id")
// sdk->setLaiwangAppInfo("设置来往和来往动态的app id",
// "设置来往和来往动态的app key", "我的应用名")
// sdk->setFacebookAppId("你的facebook appid")
// 设置用户点击一条图文分享时用户跳转到的目标页面, 一般为app主页或者下载页面
// sdk->setTargetUrl(" ")
// 打开或者关闭log
// sdk->setLogEnable(true)
// ********************** END ***************************
集成到这一步就完成了,如果没有异常,应该会出现下面的界面,这说明你已经成功实现了集成工作。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)