分享好友 最新动态首页 最新动态分类 切换频道
ubuntu 下 cocos2dx游戏引擎搭建 编译和使用(可以在linux桌面 安卓手机运行)安卓手机桌面「ubuntu 下 cocos2dx游戏引擎搭建 编译和使用(可以在linux桌面 安卓手机
2025-02-02 12:45

   cocos2dx是一个基于c++ opengl的二维游戏引擎 开源免费 支持跨平台发布 包括windows linux 安卓 苹果等等 我想用一个二维引擎入门学习游戏应该是个不错的选择 而且这个引擎作品不少 尤其是国内的作品 比如史上最坑爹游戏 捕鱼达人(这个游戏作者还专门用这个游戏为例子写了一本教程)因为个人喜好 一直喜欢在linux(我的ubuntu)上搭建各种平台 这次也不例外 经过各种百度谷歌查找文档 终于搭建好了 从笔记拿出来分享下

一引擎目录分析  

首先下载引擎源码 打开查看目录结构

  相关sln的文件不用搭理他们 显然是vs的模版文件

build-nacl.sh文件我一直没看懂是干什么的 求好心人或者相关人士帮忙翻译下这个文件注释的英文 (我是没用到这个文件)

#!/bin/bash
  2 # Build script to build all components for Native Client.
  3 #
  4 # By default this script will only build debug versions.
  5 # Pass "all" as an argument to build clean and also build
  6 # release config.
  7 #
  8 # Before running this script you need to set NACL_SDK_ROOT
  9 # and add the NaCl compiler bin folder to your path.
 10 #
 11 # There are several libraries from naclports that are
 12 # prerequisite for building cocos2dx on NaCl.  The simplest
 13 # way to build them is to checkout naclports and run:
 14 # $ make png tiff freetype xml2 freealut jpeg vorbis ogg

install-deps-linux.sh 如果你的电脑使用的是deb(ubuntu debain deepin ubuntu火麒麟等等)这个程序可以自动帮你下载编译这个源码所需要的库

Makefile makefile文件 编译源码用 不过这个makefile默认只是编译release版本 不产生debug版本

make-all-linux-project 编译源码 这个文件的描述里面说是比make 快 而且经过测试可以生成debug和release两种版本的库

二 编译引擎:

 注意:游戏引擎的源码有几行不规范(什么变量定义没初始化之类的东西) 但是还用的-Werror选项因此在编译之前需要修改游戏编译的原始makefile 将cocos2d/cocos2d-x-2.2.2/cocos2dx/proj.linux/cocos2d.mk 里面的-Werror去掉 否则编译不会通过(-Werror表示编译警告作为错误 就是如果有警告的话编译不会被通过)//这一条找了至少半个小时的谷歌百度 终于在一个英文文档里面找到了一个相同错误 又找了了几个小时 把这个错误对应的文件找到了 辛苦啊

这一步骤非常简单 最好执行。/make-all-linux-project 这一条可以执行debug和release两种库 方便使用(执行make只产生release也不是不可以)

编译之后的lib目录下面就有相关的一堆linux库了

到此 编译完成

三创建项目

 目录里面有个tools文件夹 利用这个文件夹里面的project-creater

 

有一个create_project的python脚本 直接python create_project.py 发现需要加上参数 然后按照参数

python create_project.py -language cpp -project Mygame -package com.yujiaao.mygame

(其实这也是linux好处 windows下还要在装python )

这样在引擎的project目录下就会产生你的项目了


 四编译项目 ----linux原生发布(这一部分国内几乎没人写过 完全自己试出来的

   因为是跨平台项目 因此项目的目录都显得有些奇葩(至少我是觉得这种目录很难有一个ide去去识别)classes 存放的是项目源码(项目核心源码 平台无关) Resources存放的是项目的资源 剩下几个proj相关文件就是平台发布相关代码了

   linux下面编译比较简单 进入proj.linux 会发现里面有一个 build.sh 和一个makefile

其实执行https://www.cnblogs.com/yujiaao/p/build.sh和make作用几乎一样 只不过一个会产生debug版本 一个会产生release版本  还有build.sh 貌似可以在不编译引擎的情况下直接使用(首先会编译引擎 然后编译你写的源码)

   编译完成后 你就会发现proj.linux里面多了个bin目录 然后里面会有debug(release)里面就有程序了 这个程序可以执行

五编译项目----安卓编译(这一部分主要是看proj.android里面的readme 只要readme 看懂了 这部分就ok了 还有红线部分注意下 不要copy到自己的workspace 不要变动目录结构)

首先 建议使用adt(就是谷歌官网下的直接带eclipse的那个)这样专用的东西比较好配置(还有一个原因 eclipse插件多了特别卡 尤其是你的eclipse上还有别的插件)

给出一个最简单的配置方法(偷懒不配环境变量)没有java环境下这么用最简单

1下载adt  解压(带有eclipse)

2下载ndk 解压

3下载jdk 解压(jre更好 直接copy)

4将jdk目录下的jre整个copy到adt的eclipse 目录中(eclipse会先自动识别目录下的jre然后在去找环境变量)

5在eclipse里面设置ndk的路径

完成

然后开始工作 进入project.android 可以获得安卓的导出办法:

里面有一个read个me.md 只要照着这个readme做就好了(英语是很重要滴)

主要是设置环境变量

Eclipse->Preferences->General->Workspace->**Linked Resources

    里面添加一个COCOS2DX 值是cocos2dx的根目录(没有__max 里面的那个才是根目录)

Eclipse->Preferences->C/C++->Build->**Environment**

    里面添加c++的环境变量 NDK_ROOT 指向你的ndk的根目录

然后File->New->Project->Android Project From Existing Code 导入proj.android 项目

注意:copy project to workspace 这一个选项千万不要选上 就让他在默认路径 这样才能够识别Classes文件(不要吧安卓项目copy到你自己的workspace 因为eclipse不会导入Classes 你的源码)

然后按照方法将cocos2d-x/cocos2dx/platform/android/java 平台下的包拷贝到src目录下(手动复制粘贴或者用elipse的导入都行 这个是一个java平台的lib代码)

然后运行发布就行了(这个是安卓平台需要的java源码 可能是为了节省新建的项目空间 就没有默认导入而选择需要手动复制粘贴的方式)

下面是readme英文原文 可以参考:

3. Set up Variables:
    1. Path Variable `COCOS2DX`:
        * Eclipse->Preferences->General->Workspace->**Linked Resources**
        * Click **New** button to add a Path Variable `COCOS2DX` pointing to the root cocos2d-x directory.
        ![Example](https://lh5.googleusercontent.com/-oPpk9kg3e5w/UUOYlq8n7aI/AAAAAAAAsdQ/zLA4eghBH9U/s400/cocos2d-x-eclipse-vars.png)

    2. C/C++ Environment Variable `NDK_ROOT`:
        * Eclipse->Preferences->C/C++->Build->**Environment**.
        * Click **Add** button and add a new variable `NDK_ROOT` pointing to the root NDK directory.
        ![Example](https://lh3.googleusercontent.com/-AVcY8IAT0_g/UUOYltoRobI/AAAAAAAAsdM/22D2J9u3sig/s400/cocos2d-x-eclipse-ndk.png)
        * Only for Windows: Add new variables **CYGWIN** with value `nodosfilewarning` and **SHELLOPTS** with value `igncr`
       
4. Import libcocos2dx library project:
    1. File->New->Project->Android Project From Existing Code.
    2. Click **Browse** button and open `cocos2d-x/cocos2dx/platform/android/java` directory.
    3. Click **Finish** to add project.

六总结

     网上的好多教程极为不清楚 尤其是关于eclipse和安卓的部分 使我误以为可以直接用eclipse安卓来进行cocos的开发 后来发现不是这样的 adt只能作为安卓的最后发布方式进行发布 需要写的代码还是用c++写的Classes目录下的文件 然后用adt编译即可(当然如果eclipse cpp配置的好用eclipse写这部分内容最好 但网上的教程一般都只给了安卓的发布方法 而没有告诉你具体怎么去开发如果使用linux开发cocos 大概的过程是这样的:

   环境搭建--->新建项目----->使用任意工具(eclipse+cdt(这个得需要一定配置)+或者其他任意ide+或者vim )编写Classes目录下的核心文件------->进入porj.android 发布(中间测试可以考虑使用proj.linux做测试也不错 省着发布到手机了)

最新文章
电动汽车寿命与健康的用车习惯手机闲置太久充不了电「电动汽车寿命与健康的用车习惯」
在《交广会客厅》节目中主持人嘉宾曾说到中汽研CCRT关于电动车电池续航能力的评测,本期节目,中汽测评技术管理部部长周博雅继续做客中央广播电视总台中国交通广播《交广会客厅》,与主持人高雅一起畅谈电动汽车的用车技巧。 什么是电动汽
京东手机11.11以实助实制胜背后:向用户稳品质 向市场拓增量手机购物「京东手机11.11以实助实制胜背后:向用户稳品质 向市场拓增量」
相较往年,提前至晚8点的京东11.11全球热爱季,让消费者回归购物的舒适,让品牌商家回归至产品与服务的初衷,这是基于对消费需求的深刻洞察,也是市场持续向好的印证,时间的一小步,造就了各方健康发展的一大步。不再苦于零点熬夜,为消费
3款骁龙8Gen3手机推荐,16GB+512GB价格大跳水,“闭眼买”不吃亏
虽然骁龙8至尊版手机也已经上市半年左右了,但是如果想要大内存,16GB+512GB基本都要四千元以上,想要稍微好一些的体验,预算起码五千元。这个时候,还不如选择某些大跳水的老旗舰。不可否认,某些老旗舰的配置确实不如新款,但是对比同价
小米9支持有线投屏吗?小米9有线投屏怎么设置小米手机怎么投屏到电脑「小米9支持有线投屏吗?小米9有线投屏怎么设置」
小米9手机支持有线投屏吗?答案是当然支持的。很多用户问小米9手机有线投屏的话应该怎么设置?但需要先弄清楚的是,投屏到电脑和投屏到电视使用的方法不同,所以设置的方法也是不一样的。小米9手机有线投屏到电脑,需要在电脑下载一个投屏
Kai Havukainen诺基亚8800手机「Kai Havukainen」
Kai ‘Kaizu’ Havukainen is Head of Product in Nokia Technologies, overseeing the product roadmap and marketing activities of the company’s technology licensing business. Kai holds master’s degree in signal processing an
手机卡怎么申请副卡手机副卡「手机卡怎么申请副卡」
随着通信技术的不断发展,手机卡已成为我们日常生活中不可或缺的一部分。而为了满足家庭或企业成员间通信的便利,许多运营商都推出了手机卡副卡服务。那么,手机卡如何申请副卡呢?接下来,我们将分点为大家详细解答。**一、了解副卡服务**
华为Vision智慧屏 5开启预售:聊什么都有戏,内外更出彩!
  年轻人不喜欢看电视了?其实每当看到类似话题时,我都想纠正一个观点,其实很多年轻人只是不喜欢看传统电视而已。以华为智慧屏为例,实际上拥有大量的年轻受众,尤其是Vision智慧屏系列在年轻群体中有着很高口碑。对于当下年轻人而言,
从“接诉即办”到“未诉先办” 看新泰如何用热线服务绘就“民情晴雨表”
‌近年来,新泰市行政审批服务局始终将12345政务服务便民热线视为政府与群众间的“连心桥”,秉持“民有所呼、我有所应”的原则,持续优化工作机制、创新服务模式,全方位提升政务服务水平,力求更高效地解决群众诉求。明确标准,建立机制
wifi万能钥匙苹果版 v2.5.9 iphone手机版万能手机「wifi万能钥匙苹果版 v2.5.9 iphone手机版」
第 52 楼 山东东营客人 发表于: 2023/9/1 17:58:10 破解真的快 支持( 16 ) 盖楼(回复) 第 51 楼 河南濮阳网友 发表于: 2023/8/23 18:44:16 爱了爱了 没有网的时候有它很安心 支持( 13 ) 盖楼(回复) 第 50 楼 辽宁阜新粉&
三星手机s8参数配置s8手机「三星手机s8参数配置」
大家好,今天小编来为大家解答三星手机s8参数配置这个问题,s8+三星手机参数配置很多人还不知道,现在让我们一起来看看吧!1、三星s8有哪些型号?2、三星s8是ufs多少3、三星S8屏幕尺寸是多大?1、三星-G9550型号为:三星S8+。它是三星galaxy
相关文章
推荐文章
发表评论
0评