1. 新手,cocos2dx移植到android平台不知道怎么导入sqlite3库
创建windows平台项目 一、 搭建windows开发环境 官网上显示cocos2d-x支持win7、winxp、vista系统但我只在win7上用过以下说明均是在win7系统上的编译器使用vs2010。
1、 安装vs2010 2、 安装Visual Assist X可选
3、 执行build-win32.bat编译cocos2d-x
4、 运行cocos2d-x根目录下的install-templates-msvc.bat将cocos2d-x模板加入vs模板库。
5、将.\Debug.win32目录下的所有dll文件拷贝至Windows\system32\ (iconv.dll libcocos2d.dll libcocosDenshion.dll libcuri.dll libEGL.dll libgles_cm.dll libxml.dll pthreadVCE2.dll zlib1.dll )6、 双击cocos2d-win32.vc2010.sln进入vs编译环境
二、 新建win32项目
1、在“解决方案”上单击右键选择“添加”-〉“新建项目”。
2、选择“左侧Cocos2d-x模板”在右侧列表中选择“Cocos2d-win32 Application”输入项目名称“Cocos2dDemo”点“确定”。
3、在弹出的对话框中点击“下一步”。
4、如果需要使用Box2D引擎则选中否则不要选。点击“finish”创建成功。
三、 编译运行
1、右键Cocos2dDemo项目选择“生成”进行编译。
2、右键Cocos2dDemo项目选择“设为启动项目”。然后F5或者点击菜单栏的运行键 运行。
四、 创建新的解决方案 新建项目有两种方式一是直接在cocos2d-x解决方案中添加新项目上面已经介绍过了。当你刚开始接触cocos2d-x还在尝试写demo时用这种方式可以快捷的创建demo而且方便查看例子中的代码。
另一种方式是创建一个新的解决方案方法如下
1、“文件”-〉“新建”-〉“项目”
2、进入新建项目的窗口选择“左侧Cocos2d-x模板”在右侧列表中选择“Cocos2d-win32 Application”输入项目名称“Cocos2dDemo”点“确定”。然后执行“下一步”。
3、使用Box2D引擎则选中否则不要选。点击“finish”创建成功。
4、单击左下角的属性标签或者选择“视图”-〉“属性管理器”打开属性管理器
5、在属性管理器中双击“Microsoft.Cpp.Win32.user”弹出属性页在里面设置VC++目录即可。这样该设置对所有VC项目都有效见下图。
6、在“包含目录”中, 加入下列项目 (D:\android\cocos2d-2.0-x-2.0.3\cocos2dx\platform\third_party\win32)
7、在“库目录”中, 加入下列项目(D:\adroid\cocos2d-2.0x-2.0.3\Debug.win32)(发布时用release目录下的!!)
8、上面的第4、5、6、7条
也可以通过如下方法解决: 定位到%USERPROFILE%\appdata\local\microsoft\msbuild\v4.0可以通过运行或直接在windows资源管理器的地址栏中输入使用其他文本编辑工具修改Microsoft.Cpp.Win32.user.props或Microsoft.Cpp.X64.user.props文件中的相关字段。以下是我的文件内容 <IncludePath>D:\android\cocos2d-2.0-x-2.0.3;D:\android\cocos2d-2.0-x-2.0.3\cocos2dx;D:\android\cocos2d-2.0-x-2.0.3\cocos2dx\include;D:\android\cocos2d-2.0-x-2.0.3\cocos2dx\platform;D:\android\cocos2d-2.0-x-2.0.3\cocos2dx\platform\win32;D:\android\cocos2d-2.0-x-2.0.3\cocos2dx\platform\third_party\win32\OGLES;D:\android\cocos2d-2.0-x-2.0.3\external\Box2D;D:\android\cocos2d-2.0-x-2.0.3\CocosDenshion\include;D:\android\cocos2d-2.0-x-2.0.3\cocos2dx\platform\third_party\win32;D:\android\cocos2d-2.0-x-2.0.3\cocos2dx\kazmath\include;$(IncludePath)</IncludePath><LibraryPath>D:\android\cocos2d-2.0-x-2.0.3\Debug.win32;$(LibraryPath)</LibraryPath> 第4至8条的作用是加入解决方案所依赖的头文件和库文件以保证项目的正常编译运行。
五、 如何删除vs里的cocos2d-x模板
1、 打开如下目录 (Example as default install) 1VS2008: C:\Program Files\Microsoft Visual Studio 9.0\VC\vcprojects\ 2VC2008Express: C:\Program Files\Microsoft Visual Studio 9.0\VC\Express\VCProjects 3VS2010: C:\Program Files\Microsoft Visual Studio 10.0\VC\vcprojects\ 4VC2010Express: C:\Program Files\Microsoft Visual Studio 10.0\VC\Express\VCProjects
2、 删除此目录下的 Cocos2d-x文件夹 3、 删除前缀为 CCAppWiz (0.8.0 or later) 或 CCXAppWiz (0.7.2 or earlier)的文件
将项目由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\bin; D:\android\Java\jre6\bin;
5、运行一次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。
2. 如何在eclipse下调试cocos2dx
cocos2dx程序移植到eclipse
必要组件:
1.macos gcc编译器,若没有,在xcode->preference->downloads中下载command line tools(在命令行下输入g++,若显示command not found 则没有)
2. android sdk :本机目录为 /Users/zhangyao/IDE/android-sdk-macosx
3.cocos2d-x:本机目录为 /Users/zhangyao/Desktop/cocos2d-x-2.1.1
4.ndk 本机目录为 /Users/zhangyao/Desktop/android-ndk-re8
地址:http://developer.android.com/tools/sdk/ndk/index.html
选择macos 64bit
5.cdt 若没有 则在help->install new software中下载
Programming Languages->C/C++ Development Tools.
1.配置环境变量
终端中 输入 sudo vi ~/.bash_profile
输入i进入编辑环境 输入以下内容:
export COCOS2DX_ROOT=~/Desktop/cocos2d-x-2.1.1/
export NDK_ROOT=~/Desktop/android-ndk-r8e/
export ANDROID_SDK_ROOT=~/IDE/android-sdk-macosx/
export PATH=$PATH:$ANDROID_SDK_ROOT/tools
按下esc键退出编辑
输入:wq保存退出
2.在eclipse中创建项目(设项目名称为test)
cd Desktop/cocos2d-x-2.1.1
./create-android-project.sh
输入工程标志符com.cwa.test
选择android版本号:6
输入工程名:test
cd test/proj.android/
./build_native.sh
打开eclipse,选择file->new->other->Android->Android Project from Existing code->next->Browse->选择目录至cocos2d-x-2.1.4/test/project.android->finish
选择file->new->other->c/c++->convert to a c/c++ Project->next->选择上面建好的工程->finish
至此工程test创建完成
3.配置工程属性
右键工程名->properties
3.1 c/c++ Build 把use default build command的勾去掉,在build command中写(其中test为工程名):
bash ${workspace_loc:/test}/build_native.sh NDK_DEBUG=1 V=1
3.2 点开c/c++ Build 选择Environment->add
name:NDK_ROOT
value:/Users/zhangyao/Desktop/android-ndk-r8e
3.3 c/c++ General->Path and Symbols->add
/Users/zhangyao/Desktop/android-ndk-r8e/sources/cxx-stl/system/include
全部修改完,点OK
在GUN C++中加入
/Users/zhangyao/Desktop/cocos2d-x-2.1.1/cocos2dx/include
/Users/zhangyao/Desktop/android-ndk-r8e/platforms/android-14/arch-arm/usr/include
在Android中 最好选择最新的Android4.2.2(确保Andorid模拟机中已经下载好了4.2.2的API)
4.打开项目的AndroidMainfest.xml
把android:icon="@drawable/icon">一行改为android:icon="@drawable/ic_launcher">
android:minSdkVersion="8"
把8改成14
android:minSdkVersion="14"
关闭AndroidMainfest.xml save changes选yes
在src/org.cocos2dx.lib/Cocos2dxActivity.java中
在// ...add to FrameLayout
framelayout.addView(this.mGLSurfaceView);
这句后面加上一句(如果没有):
this.mGLSurfaceView.setEGLConfigChooser(8 , 8, 8, 8, 16, 0);
打开工程jni目录下的Android.mk
MY_CPP_PATH := $(LOCAL_PATH)/ \
$(LOCAL_PATH)/../../Classes/
MY_FILES_SUFFIX := %.cpp
My_All_Files := $(foreach src_path,$(MY_CPP_PATH),$(shell find $(src_path)/.))
My_All_Files := $(My_All_Files:$(MY_CPP_PATH)/./%=$(MY_CPP_PATH)%)
MY_CPP_LIST := $(filter $(MY_FILES_SUFFIX),$(My_All_Files))
MY_CPP_LIST := $(MY_CPP_LIST:$(LOCAL_PATH)/%=%)
LOCAL_SRC_FILES := $(MY_CPP_LIST)
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
LOCAL_C_INCLUDES += $(shell ls -FR $(LOCAL_C_INCLUDES) | grep $(LOCAL_PATH)/$)
LOCAL_C_INCLUDES := $(LOCAL_C_INCLUDES:$(LOCAL_PATH)/%:=$(LOCAL_PATH)/%)
把cocos2d-x引擎的根目录的cocos2dx/platform/android/java/src文件夹下org文件夹 复制到项目的src包(test/proj.android/src)下替换org文件夹
5.把xcode中所有的自建的类文件(包括.h和.cpp)复制到cocos2d-x-2.1.1/test/Classes
所有的资源文件复制到cocos2d-x-2.1.1/test/Resources
工程的图标文件放在cocos2d-x-2.1.1/test/res下的文件夹中
至此工程配置完毕。
在对工程作出修改,比如加入/替换新的资源文件,class后,最好对工程clean一下,如果clean后还出现问题,可以重新执行一下build_native命令。
Test 的 模拟器配置
最后,执行以下步骤可以把xcode和eclipse相关联,让在xcode中做的更改,eclipse可以自动做出更改。
1.打开Xcode中的test项目(项目名和eclipse中的相同)
选择classes分组,点删除,选择Move to Trash
2.在工程中添加新group,还命名为classes,右键classes->addFIles
然后把cocos2dx/test/classes中的类都添加回来,这样eclipse和xcode就公用了这些文件,在一个中做出更改,另一个里就会自动更改,如下图:
另:1. Android联网
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
2.android中的R文件 ,是伴随着加入资源等自动更新的
Android 在开发中会自动生成一个 R.java 文件 ,这个文件是自动生成的,最好不要去改。不过有时候这个 java 文件会跟我们捉迷藏,在程序中 R.xx.xxx 会出现经常报错现象。
1 对着工程点击鼠标右键 选择 Build Project,R.java 文件又回来。这样R.xx.xxx 就能 X 的出来了。
如果不行 试用第二种 方法
2 选择eclipse/myeclipse 的 clean 这样R文件也会出现
如果还不行 试用第三种
3 经过上面两种方法都不行 使用绝招 从别的工程中拷贝一份R文件过来 然后string.xml里随便改动一下 即可更新R文件
如果还不行 试用第四种
4 经过上面的3种方法都不行 说明我们的工程有问题 好好检查吧
比如resoure资源中的文件 命名,例result_main.xml,如果写成Result_main.xml是错误的 需要全部小写
3. cocos2dx怎么编译到android
如果你用的是windows系统作为开发环境,使用的是cocos2d-x3.2最新版的,你在一开始安装cocos2d-x的时候,会要求输入
NDK_ROOT
ANDROID_SDK_ROOT
ANT_ROOT
最新版的cocos2d-x使用了python来进行安装和编译程序的,所以你要先在你的windows系统上安装上python.安装好之后,下载最新版的cocos2d-x,然后,cd到这个目录下,你会看到一个有一个setup.py的文件,.py后缀的文件就是python的脚本文件了。是要用python来运行的。如果你安装好python之后设置好了python的环境变量,这个时候,你只要在命令行里运行:
python setup.py就可以了。
然后你就可以看到要求你输入的这三个路径了。
这三个工具的所在路径,这几个路径输入对了之后,你的cocos2d-x就安装好了,这个时候,在cmd里创建一个新项目,创建的方法是在命令行里输入:
cocos new youprojectname -p com.youcom,youprojectname -l cpp -d 你的新建项目所在路径
然后回车,你就可以看你的的项目会在你的新建项目路径下有一个youprojectname的文件夹,打开,你就可以看到里边有各个系统的project文件夹了,还有一个Class和Resources的文件夹。这个时候,你在命令行里cd到你的proj.android文件夹下,使用命令:
python bulid_native.py
就可以对你的安卓新建的helloworld项目进行编译了。不出意外,要不然一分钟就编译好了。会生成一个libcocos2dcpp.so在你的pro.android/libs/armabi的路径下。然后打开你的ADT,也就是eclipse,进入pro.android目录,导入android项目到eclipse。这个时候可能会报一个cocos2d-x的lib库错误,只要把cocos2d-x的
cocos2d/cocos/platform/android/java/src
目录下的文件夹复制到pro.android/src下就可以解决这个问题了。
然后,接上你的android手机,并且在手机中打开开发者模式。点击程序远行设置,选择使用设备运行。在弹出的一个选择手机设备的框时选择run,不一会,你的helloworld项目就可以在手机上看到了。
如果要调试,你可以在eclipse中打开logcat,看到cocos2d-x的log输出信息。
总的来说,android最好的开发环境还是mac系统。因为在mac系统下很多linux命令都可以使用。不像windows系统比较蹩脚。
4. 如何解决cocos2dx 在android系统的音效bug
您好,很高兴为您解答:
SimpleAudioEngine是cocos2d-x播放声音、音效的引擎。像对于背景音乐会提供一个判断当前背景音乐是否播放完毕的接口,但是查了半天,音效并没有提供类似的接口, 大体看了下SimpleAudioEngine.cpp的实现,感觉自己写一个是可以的,所以将代码贴出来,跟大家分享下。
SimpleAudioEngine.h文件中添加以下函数定义:
//判断当前音效是否已经播放完
bool getEffectIsPlaying(unsigned int nSoundId);
SimpleAudioEngine.cpp函数实现,比较简单:
//判断当前音效是否已经播放完
bool SimpleAudioEngine::getEffectIsPlaying(unsigned int
nSoundId)
{
EffectList::iterator p =
sharedList().find(nSoundId);
bool bRet = false;
if (p !=
sharedList().end())
{
bRet =
p->second->IsPlaying();
}
return bRet;
}复制代码
注:修改后将libCocosDenshion类库重新编译一下。只要通过我们的soundid参数,便可找到MciPlayer,这样就好处理了。
5. cocos2dx中怎么调用android的代码实现录音功能
加入android有调用录音功能的api的话 可以使用jni调用android的函数
6. cocos2dx c++调用android浏览器打开url如何实现,网上很多案例都不行!
使用java代码写一个static的函数,在java中调用android浏览器打开url,这样才行,比如
publicstaticvoidstartURL(Stringurl){
IntentmIntent=newIntent(Intent.ACTION_VIEW);
mIntent.setData(Uri.parse(url));
startActivity(mIntent);
}
然后你在你的C++中调用startURL 就可以了
7. cocos2dx怎样设置ios和Android横屏竖屏的几种方法
只需要在RootViewController.mm文件里面
1
- (BOOL):(UIInterfaceOrientation)interfaceOrientation {
return ( interfaceOrientation );
}
// For ios6, use & shouldAutorotate instead
- (NSUInteger) {
#ifdef __IPHONE_6_0
return ;
#endif
}
- (BOOL) shouldAutorotate {
return NO;
}
2
if ([[UIDevice currentDevice] respondsToSelector:@selector(setOrientation:)]) {
[[UIDevice currentDevice] performSelector:@selector(setOrientation:)
withObject:(id)];
}
}
//但是
- (BOOL) shouldAutorotate {
return NO;
}//一定要返回no
可以设置view与电池条方向保持一致
在AooController.mm中
<span style="font-size:18px;">- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions </span>
这个函数中加一句话
[[UIApplication sharedApplication] setStatusBarOrientation:UIDeviceOrientationPortrait animated: NO];
android项目修改为横屏的方法是修改xml文件:
打开项目中的AndroidManifest.xml文件中,
screenOrientation="landscape" 为横屏,
screenOrientation="portrait"为竖屏
8. cocos2d-x android怎么真机调试
1、这个cocos自身已经做得非常自动化,在cocos引擎文件夹下双击一个setup.py,设置好ANDROID_SDK_ROOT,NDK_ROOT,ANT_ROOT基本就可以建立好编译环境,当然别忘了setup是用Python来运行的。还用不懂就到网上找或者看cocos目录下的README.md文件。
2、这里最好把NDK路径加入到环境变量的系统路径(即Path环境变量中)。因为本文会频繁用到ndk-build和ndk-gdb.py(和ndk-gdb同个东西,但是也有点点区别,下文会提及)命令,把ndk路径加入到系统路径中也是为了好调取这两个命令