cocos2dx开发配置

    xiaoxiao2021-03-26  12

    之前虽然将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编译,不能调试,仅适用懒折腾的人。此方法在此备注,仅供参考。

    转载请注明原文地址: https://ju.6miu.com/read-600263.html

    最新回复(0)