cocos2d-x游戏开发学习笔记

本笔记使用的环境:

先使用windows xp + vs2008进行开发。

在windows xp + eclipse-jee-indigo-SR1 + android-sdk_r16 + android-ndk-r8b下进行android版本的测试。

最后的开发都在windows xp上进行。

ios的编译暂不进行。

一、cocos2d-x的安装及使用

1 、登录http://cn.cocos2d-x.org/下载游戏引擎的源码

2、学习入门文件。先按1.从win32 开始进行练习

按网址http://cn.cocos2d-x.org/resource/上面的第一到七章指示的方法学习入门文章。

3、在学习中遇到以下问题:

1)按window版本的方法,把HelloWord工程建立好以后运行正常。想想把

CCLabelTTF* pLabel = CCLabelTTF::labelWithString("Hello World", "Thonburi", 48);

中的英文改成中文,运行结果,出现乱码

只好问百度了。最终通过UTF-8编码解决。以后程序中中文的地方,看来都得用utf-8了。

解决方法如下:


inline void WStrToUTF8(std::string& dest, const wstring& src)
{

 dest.clear();

 for (size_t i = 0; i < src.size(); i++){

  wchar_t w = src[i];

  if (w <= 0x7f)

   dest.push_back((char)w);

  else if (w <= 0x7ff){

   dest.push_back(0xc0 | ((w >> 6)& 0x1f));

   dest.push_back(0x80| (w & 0x3f));

  }

  else if (w <= 0xffff){

   dest.push_back(0xe0 | ((w >> 12)& 0x0f));

   dest.push_back(0x80| ((w >> 6) & 0x3f));

   dest.push_back(0x80| (w & 0x3f));

  }

  else if (sizeof(wchar_t) > 2 && w <= 0x10ffff){

   dest.push_back(0xf0 | ((w >> 18)& 0x07)); // wchar_t 4-bytes situation

   dest.push_back(0x80| ((w >> 12) & 0x3f));

   dest.push_back(0x80| ((w >> 6) & 0x3f));

   dest.push_back(0x80| (w & 0x3f));

  }

  else

   dest.push_back('?');

 }

}


//! simple warpper

inline std::string WStrToUTF8(const std::wstring& str){

 std::string result;

 WStrToUTF8(result, str);

 return result;
}


  std::string text = WStrToUTF8(L"你好");
  CCLabelTTF* pLabel = CCLabelTTF::labelWithString(text.c_str(), "宋体", 48);

 

4、如何编译android版本

至此windows版本运行一切正常。既然cocos2d-x是一个跨平台的游戏引擎,那么如何编译成apk呢?折腾了大半夜终于搞好了:

方法过程如下:

1)安装android开发环境(下载并安装eclipse-jee,下载android-sdk),见andriod开发的入门文章

2)下载并安装Cygwin

3)下载并安装android-ndk(我下载的是r8)

4)修改create-android-project.bat设置

 set_CYGBIN=C:\cygwin\bin
Cygwin bin的路径
 set_ANDROIDTOOLS=D:\android\android-sdk-windows\tools
android sdk tools的路径
 set_NDKROOT=D:\android\android-ndk-r5b
ndk的根目录

5)运行create-android-project.bat,输入包名称:com.test.testHelloAndriod,输入项目名称如:testHelloAndriod。然后输入target id(根据窗口里面的提示输入)

成功以后,引擎所在目录的下面会建立一个目录testHelloAndriod。工程已经为你建立好了。

6)工程建立好以后eclipse打开建立工程进行编译。编译过程见NDK编译的专题文章。如:<Eclipse中配置NDK ,运行cocos2d-x >

过程中有几点注意:

a)工程建立好以后需要android\res\drawable-hdpi、android\res\drawable-mdpi、android\res\drawable-ldpi目录下各方一个icon.png把为图标文件。

b)需要配置NDK编译环境

c)Resources目录下的所有内部复制到android\assets目录下,重新编译。

d)需要

打开 cocos2dx/Android.mk
把下面这行

LOCAL_CFLAGS := -DUSE_FILE32API

改成

LOCAL_CFLAGS := -DUSE_FILE32API -DGL_GLEXT_PROTOTYPES=1

 

7)编译完成以后运行,怎么还是hello world?如何把我刚才的工程编译?

只能手动修改了

a)把Cocos2dSimpleGame\Classes目录中的所有文件复制到

testHelloAndriod\Classes目录下

b)修改testHelloAndriod\android\jni\helloworld\Android.mk中的内容如下(红色为增加部分):

LOCAL_SRC_FILES := main.cpp \
../../../Classes/AppDelegate.cpp \
../../../Classes/HelloWorldScene.cpp \
../../../Classes/GameOverScene.cpp

 

c)编译运行-失败。原因是不支持中文。HelloWorldScene.cpp中的中文部分改成英文编译运行成功!!!

问题:如何在andriod下支持中文???

 

d)运行成功以后,发现屏幕怎么倒置了?原因是windows和andriod下的配置还是不一样。方法:在步骤a中AppDelegate.cpp 不替换就可以了。

 

 

总结cocos2d-x跨平台的支持性不是太好,好多还需要手工操作。

今天先学习cocos2d-x的基本安装使用问题。

明天对引擎的结构进行学习。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值