• ubuntu 下 cocos2dx游戏引擎搭建 编译和使用(可以在linux桌面 安卓手机运行)


       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

    其实执行./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做测试也不错 省着发布到手机了)

       其实有点折腾 使用vs的话直接用模版可以用(有个导入模版之类的东西 vs直接新建模版里面就会有cocos2dx的模版) windows下和苹果下面还有相关专用ide(不过我的所有开发大都在linux下 习惯了)

  • 相关阅读:
    移动端高清、多屏适配方案
    Cookie存中文乱码的问题
    手机网站-前端开发布局技巧汇总
    深入理解javascript中的立即执行函数(function(){…})()
    test
    [PAT] A1013 Battle Over Cities (25分)
    PAT索引
    [PAT] A1012 The Best Rank
    [PAT] A1091 Acute Stroke
    [PAT] A1067 Sort with Swap(0, i)
  • 原文地址:https://www.cnblogs.com/yujiaao/p/3635582.html
Copyright © 2020-2023  润新知