加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

cocos2dx mac下环境搭建

发布时间:2020-12-14 16:51:04 所属栏目:百科 来源:网络整理
导读:本来之前没有用过Xcode,而对 Visual Studio 很有好感,网上也说IDE来说,VS是完爆 Xcode 的。可惜公司用的是 Mac 电脑,虽然尝试过使用虚拟机,可惜磁盘空间太小,装完vs后虚拟机已经占了 70 G ,而且编译性能、io s/androi d 调试、环境转换等等都有不足,

本来之前没有用过Xcode,而对Visual Studio很有好感,网上也说IDE来说,VS是完爆Xcode的。可惜公司用的是Mac电脑,虽然尝试过使用虚拟机,可惜磁盘空间太小,装完vs后虚拟机已经占了70G,而且编译性能、ios/android调试、环境转换等等都有不足,最后还是直接用Xcode来搞了。

一、下载组件

cocos官网http://www.cocos.com/download上下载资源,包括cocos studio(用于场景设计、布局、动画等,可以将设计与编码分开,提高效率)cocos framework(我使用时最新是3.9版本的)

二、生成工程

Xcode直接从Appstore上下载,不再赘述。将cocos framework解压后,到cocos2d-x-3.9/tools/cocos2d-console/bin目录下执行如下命令,新建工程:

./cocosnew HelloWorldDemo -p com.coco2dx.org -l cpp -d ~/Desktop

参数说明:

  • HelloWorldDemo为项目名称
  • -p后面接包名
  • -l后面接开发语言类型,有cpp,lua,js三种类型
  • -d后面接项目存放的目录

执行完成后,在Desktop目录下,会新建HelloWorldDemo的工程目录

里面有跨平台所使用的各种工程目录,我们主要使用的是proj.ios_mac——ios平台,proj.android/proj.android-studio——android平台,proj.androideclipse工程,proj.android-studioandroid-studio工程。我习惯使用as,不过需要比较新的cocos版本才会生成这个目录。

进入proj.ios_mac,直接打开HelloWorldDemo.xcodeproj文件,就可以编译执行

三、安卓环境配置

1、普通配置

我们使用cocos,除了因为对开发过程进行了封装,可以提高开发效率外,对跨平台的支持也是一个很重要的原因。现在就将刚才的工程使用android studio进行编译打包,生成android上可执行的工程。

sdkndk的安装,网上资料一大堆,就不详细描述了。注意在android studio中进行配置就可以了。

使用android studio将刚才的proj.android-studio目录导入工程File->new->import project。然后直接在AS中编译是不行的,ndk部分的编译需要使用命令行,在terminal中执行:

~/cocos2d-x-3.9/tools/cocos2d-console/bin/cocoscompile -p android --android-studio

会自动调用ndk-build进行编译ndk部分(需要时间比较久,每次编译会需要编译cocos的工程部分,如果之前有其他工程编译过,可以直接目标文件copy过来),调用gradle编译apk。

编译完成后,就可以直接运行了。

2、进阶配置

自动生成的jni/Android.mk比较弱,有新增的c++文件需要手动添加:

LOCAL_SRC_FILES:= hellocpp/main.cpp

../../../Classes/AppDelegate.cpp

../../../Classes/HelloWorldScene.cpp

所以,网上找了一个可以自动将目录下所有文件包含的mk文件:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := cocos2dcpp_shared

LOCAL_MODULE_FILENAME := libcocos2dcpp

#widcard为扩展通配符

#遍历目录和子目录

define walk

$(wildcard $(1)) $(foreach e,$(wildcard $(1)/*),$(call walk,$(e)))

endef

#遍历路径Classes下得目录和子目录文件,并存入ALLFILES变量中

ALLFILES = $(call walk,$(LOCAL_PATH)/../../../Classes)

#ALLFILES目录中提取文件,并存入FILE_LIST

#.ccLinux/Unix下为C++源文件的默认扩展名,.cpp一个意思

#.c 因为我要用到sqlite3.c

FILE_LIST := hellocpp/main.cpp

FILE_LIST += $(filter %.cpp,$(ALLFILES))

FILE_LIST += $(filter %.c,$(ALLFILES))

FILE_LIST += $(filter %.cc,$(ALLFILES))

#搜索Classes下的子目录文件

FILE_INCLUDES += $(shell find $(LOCAL_PATH)/../../../Classes -type d)

#根据搜索到的文件名 编译资源文件

LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)

#提供搜索文件的路径

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

$(FILE_INCLUDES)

LOCAL_STATIC_LIBRARIES := cocos2dx_static

include $(BUILD_SHARED_LIBRARY)

$(call import-module,.)

$(call import-module,network)

#$(call import-module,editor-support/cocosbuilder)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读