
cocos2dx是怎么解决跨平台的问题呢,我们先想一下解决跨平台问题的思路,那就是将变与不变的内容分离出来,将变的内容进行封装,提供一个统一的接口给不变的内容使用,这样可以做到跨平台的复用。那cocos2dx是怎么做到的呢,cocos2dx目录下面以proj开头的文件夹,就是变的部分,封装了不同平台的差异。Resources和Classes文件夹则是不变的部分,属于游戏公共部分。
针对不同平台的配置编译,这里主要介绍AndroID和iOS,在AndroID/工程/jni文件夹下面,找到AndroID.mk文件,AndroID.mk文件用来告知NDK Build 系统关于Source的信息,其配置信息如下:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODulE := cocos2dcpp_shared
LOCAL_MODulE_filename := libcocos2dcpp
file_List := hellocpp/main.cpp
file_List := hellocpp/main.cpp
file_List += $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp)
file_List += $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp)
file_List += $(wildcard $(LOCAL_PATH)/../../Classes/Config/*.cpp)
LOCAL_SRC_fileS := $(file_List:$(LOCAL_PATH)/%=%)
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes \
$(LOCAL_PATH)/../../Classes/Config \
LOCAL_WHolE_STATIC_liBRARIES += cocos2dx_static
LOCAL_WHolE_STATIC_liBRARIES += cocosdenshion_static
LOCAL_WHolE_STATIC_liBRARIES += Box2d_static
LOCAL_WHolE_STATIC_liBRARIES += chipmunk_static
LOCAL_WHolE_STATIC_liBRARIES += cocos_extension_static
include $(BUILD_SHARED_liBRARY)
$(call import-module,cocos2dx)
$(call import-module,cocos2dx/platform/third_party/androID/prebuilt/libcurl)
$(call import-module,cocos2dx/platform/third_party/androID/prebuilt/libcurl)
$(call import-module,CocosDenshion/androID)
$(call import-module,CocosDenshion/androID)
$(call import-module,extensions)
$(call import-module,extensions)
$(call import-module,external/Box2D)
$(call import-module,external/Box2D)
$(call import-module,external/chipmunk)
$(call import-module,external/chipmunk)
配置完成后,进入proj.androID文件夹下面,通过运行build_native.py命令完成源码编译,然后通过eclipse打包apk。
在iOS平台下面则比较简单,创建类的时候将类信息配置在 工程名称.xcodeproj文件下project.pbxproj,直接通过xcode编译运行即可。
如果我们需要创建不同平台或相同平台不同功用的工程,只要将proj.开头的文件夹复制一份,这个文件夹会引用正确的源码和资源信息,在里面可以配置修改不同平台或功用的需求。 总结
以上是内存溢出为你收集整理的hello world工程结构分析全部内容,希望文章能够帮你解决hello world工程结构分析所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)