cocos2dx开发配置

之前虽然将cocos2dx的hello world编译出来,但cocos2dx与平常的java开发不同。因为cocos2dx是跨平台的,所以同样可以在linux,mac及windows运行。然而android studio开发语言是java,而cocos2dx是c++写成的编码。网上鱼龙混杂,皆不能讲到开发的实质。没办法,最新的技术永远在国外,在Google上我发现了一个youtube上的视频(请先翻墙) https://www.youtube.com/watch?v=gdOkbXYsf04。

老实说,这个外国人取了巧。视频的最后不过是修改了一下字体的大小,然后重新编译。如果是大的项目呢?成千上万个文件,通过两个android-studio可以智能化更新么?答案是否定的,相对而言,unity开发将一切封装的好好的,但难碰得真正的核心。掌握核心技术,这是一个健康有为游戏应该做到的。cocos2dx就是这样的一个东西,这几天业余有时间,我试了很多次。虽然目前仍然没有找到顺手的IDE工具,但核心已然明白了。

首先开发cocos2dx,应该先了解3.x与2.x的区别,cocos2d与cocos2dx的区别。一个大版本跨越后,很多以前的资料deprecated过时了。然而其本质是跨平台和c++,了解了这些开发便不再困难。cocos2dx现在的版本真正的代码在Classes文件夹,是c++语言编写。然后通过ndk编译android.mk和application.mk来生成.so,如果想增删cpp文件,必须手动修改android.mk的源文件。如果是linux平台很容易修改实现自动,然而windows平台无法实现自动。关于mk文件编译及c++知识这里不多说,我写了一个python脚本,脚本内容如下

import os.path
import sys
import os
		 
text = """LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

$(call import-add-path,$(LOCAL_PATH)/../../../cocos2d)
$(call import-add-path,$(LOCAL_PATH)/../../../cocos2d/external)
$(call import-add-path,$(LOCAL_PATH)/../../../cocos2d/cocos)
$(call import-add-path,$(LOCAL_PATH)/../../../cocos2d/cocos/audio/include)

LOCAL_MODULE := cocos2dx

LOCAL_MODULE_FILENAME := libcocos2dx

LOCAL_SRC_FILES := main.cpp"""

g = os.walk( os.path.abspath(os.path.join(os.path.dirname(__file__),"../../../Classes")) )  

dirs = ""

for parent,dirnames,filenames in g:

	for dirname in  dirnames:
		d = os.path.join(parent,dirname)
		d = d[ d.find("Classes"):]
		d = d.replace("\\","/")
		dirs += " \\\n                    $(LOCAL_PATH)/../../../Classes"+d
		
	for filename in filenames:  
		if(filename.endswith(".h")):
			continue
		p = os.path.join(parent,filename)
		p = p[ p.find('Classes'):]
		p = p.replace('\\','/')
		text += ' \\\n                   ../../../'+p

#text = text[: len(text)-2]
text += """

LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../Classes"""

text += dirs
text += """

# _COCOS_HEADER_ANDROID_BEGIN
# _COCOS_HEADER_ANDROID_END


LOCAL_STATIC_LIBRARIES := cocos2dx_static

# _COCOS_LIB_ANDROID_BEGIN
# _COCOS_LIB_ANDROID_END

include $(BUILD_SHARED_LIBRARY)

$(call import-module,.)
"""

f = open('Android.mk', 'w')
f.write(text)
f.close()

注意我将hellocpp文件夹删了,然后把main.cpp拷到jni同一目录下。在jni目录新建一个_generate_mk.py文件,内容拷进去,点击即可自动生成android.mk。通常我又建了一个bat批处理文件,一键生成android.mk,编译运行,同样在jni目录下。内容如下
_generate_mk.py
cocos run -p android --android-studio --pt-23  & pause

这样我可以专注于Classes文件夹文件的编写了,而不必打开android studio了,同时所有引用到的资源放在proj.android-studio\assets。

最后不得不吐槽下,网上的东西真的是太老了。基本上无法运行,若想学cocos2dx还应该打开cocos2dx\tests\cpp-tests\拷过去编译完美运行。

PS: 虽然android-studio有支持cocos2dx直接编译运行的插件,但我仍建议使用vs2012以上版本或codeblocks做为开发IDE。本人使用codeBlocks配置菜单->工具为上面的bat文件,设置输出到工具输出窗口,并配置快捷键为F1。上面的脚本需改动一下如下:

D:
cd D:\mywork\test\proj.android-studio\app\jni
_generate_mk.py
cocos run -p android --android-studio --pt-23
然后在编译器选项中添加cocos库头文件,写完代码后按下F1直接在手机中查看效果。这个方法比较无奈,借助NDK编译,不能调试,仅适用懒折腾的人。此方法在此备注,仅供参考。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值