Cocos2d-x 开发之环境搭建

一、 簡介

Cocos2d是使用object-c语言开发,运行于ios系统的一款游戏引擎,为了让这款引擎能在更多的平台使用,国内的牛人根据cocos2d开发出了cocos2d-x,采用c++开发。Cocos2d-x这个开源项目的目标是让用户创建跨平台的代码。支持的平台有iOS、Android、WinPhone、Win32平台上等。

优点:基于OpenGL ES,跨平台等;

缺点:相关文档并不完善,引擎各版本之间API经常有变动,例如前一版本中的某个接口,在下一个版本中可能名称被修改或是调用方式完全修改,这对开发者会造成一定的困扰。

我开始cocos2d-x开发之路时,是需要根据一份ios代码,完成相应的android版本,所以我采用的方式是window下eclipse和mac虚拟机下xcode共同完成的,即在eclipse和xcode中分别创建基于cocos2d-x的工程,将xcode工程资源目录指向eclipse中工程目录地址,在xcode编写代码并使用iphone和ipad模拟器运行,在eclipse中使用NDK编译后运行。

二、 環境搭建

1.从http://cocos2d.cocoachina.com/下载一份cocos2d-x引擎包(我目前使用的是2.1.2版本),解压;

2.在windows下配置好JDK+eclipse+ADT环境,启动eclipse;

3.下载NDK的包(如http://dl.google.com/android/ndk/android-ndk-r7-windows.zip),解压;

4.下载cygwin;

5.编辑cocos2d-x目录下的create-android-project.bat,将set _CYGBIN、set _ANDROIDTOOLS和set _NDKROOT分别改为相应路径,例如:

set_CYGBIN=D:\cygwin\bin

set_ANDROIDTOOLS=D:\android-sdk\tools

set_NDKROOT=D:\android-ndk-r8b-windows\android-ndk-r8b

6.创建android工程:双击create-android-project.bat(如提示没有权限之类的,就右击然后点击“Run as administrator”),根据相关提示输入相关信息即可。

7.创建完毕会在相应工程下看到三个文件夹:Classes、proj.android和Resources,其中Classes中存放的是c++编写的代码,Resources中存放资源文件,proj.android存放的是android工程;

8.导入proj.android中的工程到eclipse中;

9.配置NDK环境:

右击项目-》属性-》Builders-》添加NDK的项





NDK_MODULE_PATH的设置如:D:\cocos2d-2.1rc0-x-2.1.2-hotfix\cocos2d-2.1rc0-x-2.1.2;D:\cocos2d-2.1rc0-x-2.1.2-hotfix\cocos2d-2.1rc0-x-2.1.2\cocos2dx\platform\third_party\android\prebuilt

10. 在手机上运行,正常时会看到一张图片;

11. 修改Classes下的代码或是点击clean,会在控制台看到NDK重新编译c++代码,编译成功时会提示生成了game.so文件,android代码中正是使用JNI调用该文件从而在android手机中运行的。

eclipse中再安装好CDT,就可以直接在eclipse编写C++代码了,由于我还需要在ios系统运行,下面接着介绍如何在mac系统中配置cocos2d-x开发环境。

12. 没有mac开发机,为了能使用同一份代码,故我在windows系统中安装了mac虚拟机(如果你是mac系统,可直接安装eclipse),安装好xcode;

13. 拷贝cocos2d-x的包到mac系统,在终端中运行:

cd$COCOS2DX_HOMEsudo./install-templates-xcode.sh–u

其中$COCOS2DX_HOME为cocos2d-x在你的mac系统中的目录。

14. 打开xcode,创建项目,会在项目模板中看到cocos2dx,使用该模板创建项目;

下面让xcode中的项目使用windows下eclipse中的资源

15. Finder-》前往-》连接服务器-》smb://10.200.x.xx-》连接(其中10.200.x.xx为windows下电脑的ip地址,在windows中将eclipse工程的路径设置为共享,mac下连接之后,即可看到共享目录);

16. 将xcode工程中的Classes和Resources删除,右击xcode工程目录-》add files to “”,选择工程目录中的Classes和Resources目录-》add。

17. 现在xcode工程使用的即是windows中eclipse工程中的代码和资源文件,在xcode中修改,在eclipse中会马上看到新修改的,反之亦然。在xcode中使用iphone虚拟器运行,看到的效果跟在eclipse中运行的一样。

三、 連接

官網:http://cocos2d.cocoachina.com/

四、 常见问题:

1.在下载cygwin时,需要将Devel项由Default改为Install再继续,否则装好的cygwin中make等命令都默认没有安装的;

2.使用cygwin时,经常出现Permiss Denied 错误,会发现是项目创建后很多文件没有读写权限,可使用命令chmod-R 777 * 将所有子目录权限都递归一并修改了;

3.在使用cocos2d-x中的create-android-project.bat 创建工程时,有时候权限不够,可以右键使用管理者身份运行;运行有时会因为目录位置报错,可以在文件的第一句配置一下:cd/d %~dp0

4.The lowest version cocos2d-x supports isandroid-8。所以在創建android項目時,輸入id需要輸入版本大於等於8的id;

5.在eclipse运行编译时,添加到了Resource下的图片等资源,需要手动复制一份到assets下面(直接用cygwin编译就不用)。

6.编译Coco2d-x android 程序出现make: *** No ruleto make target ...CCConfiguration.o'. Stop.

解决办法:将eclipse工程中的obj文件夹删除重新编译。(详解请见:http://www.jb51.cc/article/p-zhlttdwo-ym.html)

Cocos2d-x 开发之环境搭建的更多相关文章

  1. html5 移动端视频video的android兼容(去除播放控件、全屏)

    这篇文章主要介绍了html5 移动端视频video的android兼容,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  2. ios – Xcode找不到Alamofire,错误:没有这样的模块’Alamofire’

    我正在尝试按照github(https://github.com/Alamofire/Alamofire#cocoapods)指令将Alamofire包含在我的Swift项目中.我创建了一个新项目,导航到项目目录并运行此命令sudogeminstallcocoapods.然后我面临以下错误:搜索后我设法通过运行此命令安装cocoapodssudogeminstall-n/usr/local/bin

  3. ios – Xcode在发布时崩溃

    我正在开发iOS应用程序,我在应用程序中没有更改任何内容.但是在重新启动我的Mac时,XCode每次都会崩溃.不知道这是否重要,但我的聚光灯找不到任何应用程序当我打开取景器并使用快捷键cmdshiftH时我看到一个白色的窗户.Xcode不再启动并抛出此错误:我希望有一个人可以帮助我.这会导致与权限冲突吗?

  4. xcode找不到匹配的配置文件

    我有一个AdhociOS应用程序,它给了我“在xcode6中找不到匹配的配置文件”,我创建了一个Adhoc配置文件,下载它,双击它并在General–Identity下选择了一个团队.但我接着得到了那条消息,并尝试使用“修复问题”按钮没有帮助.在构建设置–供应配置文件–发布我有“自动”.任何人都可以帮助我,我完全迷失了……

  5. iOS:调试无法在XCode中运行

    我正在使用XCode4和iOSSDK4.3.我的调试工作正常,但现在我发现在设置断点时,应用暂停,但XCode不关注编辑器中的行.点击断点时也不会显示绿色箭头.我有一个在AppDelegate中分配的UINavigationController.当我在didFinishLaunchingWithOptions中设置断点时,一切都按预期工作:这是当一个断点暂停了mapViewController中的

  6. ios – 如何/是否在Xcode中制作通用故事板

    在Xcode中创建故事板文件时,您必须选择是否适用于iPhone或iPad.这意味着应始终将iPhone和iPadUI放入单独的故事板中.这是真的?我的应用程序有多个故事板.虽然Main.storyboard文件在iPhone和iPad之间存在很大差异,但其他故事板几乎完全相同.唯一的区别可能是推动iPhone与iPhone上的popover,可以通过编程方式处理.制作两个故事板似乎非常愚蠢和多余.因此,如果制作一个“通用”故事板,是否应该在Xcode中选择iPhone或iPad?

  7. xcode – 如何通过LLDB命令行添加断点操作?

    如果你从Xcode编辑一个断点,有一个超级有用的选项,可以添加一个“Action”,以便在每次遇到断点时自动执行.如何从LLDB命令行添加此类操作?

  8. XCode:将故事板导出到图像

    我有一个小问题……

  9. xcode6.1 – Xcode 6.1中项目模板中缺少类前缀

    项目模板上曾经有一个类前缀字段,这有助于区分项目类和框架类.Xcode6.1项目模板中不再提供此功能.这背后的意图是什么?

  10. 为Xcode中的iPhone 5手电筒应用调暗LED

    我期待用滑块选项调暗手电筒的LED.我知道Apple支持iOS6但是,我不确定要使用哪些代码.这是我目前在.m文件中的代码.解决方法–(BOOL)setTorchModeOnWithLevel:(float)torchLevel错误:(NSError**)outError你想要的是什么但是,从我所看到的,它只在某些间隔(~0.2)更新.编辑–完整示例:这是一个UiSlider.您需要在滑块上添加I

随机推荐

  1. 【cocos2d-x 3.x 学习笔记】对象内存管理

    Cocos2d-x的内存管理cocos2d-x中使用的是上面的引用计数来管理内存,但是又增加了一些自己的特色。cocos2d-x中通过Ref类来实现引用计数,所有需要实现内存自动回收的类都应该继承自Ref类。下面是Ref类的定义:在cocos2d-x中创建对象通常有两种方式:这两中方式的差异可以参见我另一篇博文“对象创建方式讨论”。在cocos2d-x中提倡使用第二种方式,为了避免误用第一种方式,一般将构造函数设为protected或private。参考资料:[1]cocos2d-x高级开发教程2.3节[

  2. 利用cocos2dx 3.2开发消灭星星六如何在cocos2dx中显示中文

    由于编码的不同,在cocos2dx中的Label控件中如果放入中文字,往往会出现乱码。为了方便使用,我把这个从文档中获取中文字的方法放在一个头文件里面Chinese.h这里的tex_vec是cocos2dx提供的一个保存文档内容的一个容器。这里给出ChineseWords,xml的格式再看看ChineseWord的实现Chinese.cpp就这样,以后在需要用到中文字的地方,就先include这个头文件然后调用ChineseWord函数,获取一串中文字符串。

  3. 利用cocos2dx 3.2开发消灭星星七关于星星的算法

    在前面,我们已经在GameLayer中利用随机数初始化了一个StarMatrix,如果还不知道怎么创建星星矩阵请回去看看而且我们也讲了整个游戏的触摸事件的派发了。

  4. cocos2dx3.x 新手打包APK注意事项!

    这个在编译的时候就可以发现了比较好弄这只是我遇到的,其他的以后遇到再补充吧。。。以前被这两个问题坑了好久

  5. 利用cocos2dx 3.2开发消灭星星八游戏的结束判断与数据控制

    如果你看完之前的,那么你基本已经拥有一个消灭星星游戏的雏形。开始把剩下的两两互不相连的星星消去。那么如何判断是GameOver还是进入下一关呢。。其实游戏数据贯穿整个游戏,包括星星消除的时候要加到获得分数上,消去剩下两两不相连的星星的时候的加分政策等,因此如果前面没有做这一块的,最好回去搞一搞。

  6. 利用cocos2dx 3.2开发消灭星星九为游戏添加一些特效

    needClear是一个flag,当游戏判断不能再继续后,这个flag变为true,开始消除剩下的星星clearSumTime是一个累加器ONE_CLEAR_TIME就是每颗星星消除的时间2.连击加分信息一般消除一次星星都会有连击信息和加多少分的信息。其实这些combo标签就是一张图片,也是通过控制其属性或者runAction来实现。源码ComboEffect.hComboEffect.cpp4.消除星星粒子效果消除星星时,为了实现星星爆裂散落的效果,使用了cocos2d提供的粒子特效引擎对于粒子特效不了

  7. 02 Cocos2D-x引擎win7环境搭建及创建项目

    官网有搭建的文章,直接转载记录。环境搭建:本文介绍如何搭建Cocos2d-x3.2版本的开发环境。项目创建:一、通过命令创建项目前面搭建好环境后,怎样创建自己的Cocos2d-x项目呢?先来看看Cocos2d-x3.2的目录吧这就是Cocos2d-x3.2的目录。输入cocosnew项目名–p包名–lcpp–d路径回车就创建成功了例如:成功后,找到这个项目打开proj.win32目录下的Hello.slnF5成功了。

  8. 利用cocos2dx 3.2开发消灭星星十为游戏添加音效项目源码分享

    一个游戏,声音也是非常的重要,其实cocos2dx里面的简单音效引擎的使用是非常简单的。我这里只不过是用一个类对所有的音效进行管理罢了。Audio.hAudio.cpp好了,本系列教程到此结束,第一次写教程如有不对请见谅或指教,谢谢大家。最后附上整个项目的源代码点击打开链接

  9. 03 Helloworld

    程序都有一个入口点,在C++就是main函数了,打开main.cpp,代码如下:123456789101112131415161718#include"main.h"#include"AppDelegate.h"#include"cocos2d.h"USING_NS_CC;intAPIENTRY_tWinMain{UNREFERENCED_ParaMETER;UNREFERENCED_ParaMETER;//createtheapplicationinstanceAppDelegateapp;return

  10. MenuItemImage*图标菜单创建注意事项

    学习cocos2dx,看的是cocos2d-x3.x手游开发实例详解,这本书错误一大把,本着探索求知勇于发现错误改正错误的精神,我跟着书上的例子一起调试,当学习到场景切换这个小节的时候,出了个错误,卡了我好几个小时。

返回
顶部