cocos2d-x 提升篇 (14) cocos2d-x游戏程序的构建

本文详细介绍了cocos2d-x游戏程序的构建过程,重点关注proj.android和proj.linux文件夹,以及Resources和Classes目录。讲解了AndroidManifest.xml、LOCAL_SRC_FILES和LOCAL_C_INCLUDES在Android构建中的作用,以及main.cpp在Linux构建中的关键角色。此外,还讨论了AppDelegate类的功能,包括初始化GLContextAttrs和处理应用程序生命周期事件。文章提到了cocos2d-x使用cmake构建工程的重要性,并简单提及了Android和Linux项目的构建方式。
摘要由CSDN通过智能技术生成

打开src/cocos2d-x-3.14.1/tests/cpp-tests的目录可以看到有很多和平台相关的文件夹

比如android, android-studio, linux, ios, mac, win10, win32,

所以说只要游戏写一次,按照编译指令就会生成对应的文件,比如编译android会生成对应的apk,ubuntu运行的话会生成对应的可执行程序,在前面的章节中有介绍。

这里主要看两个文件夹proj.android 和proj.linux

和两个目录Classes目录和Resources目录,根据它们的定义就很容易知道Resources是放资源文件的,Classes是放源码目录的。

cocos2d-x使用的是cmake构建工程,cmake后面需要专门的章节进行介绍,

因为懂得怎么写cmake就知道怎么构建工程,对理解cocos2d-x引擎整体的构建起到举足轻重的作用。


来看proj.android文件夹

进入proj.android文件夹,就是一个最简单的android工程,java部分几乎没有什么实现,很多都是android自动生成的文件,有几个地方需要自己改动:

res/values/strings.xml文件下的

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">CppTests</string>
</resources>
这里可以更改生成apk的名字,也可以更改程序的显示图片,最直接的做法就是替换res/drawable-Idpi中的icon.png和它命名一样的名字。

AndroidManifest.xml规定了程序的入口

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
我们最需要改的是jin目录下的Android.mk文件

其中LOCAL_SRC_FILES是重中之重,规定自己编写的文件路径位置,LOCAL_C_INCLUDES规定头文件位置。

android是通过自身的ndk开发调用生成cpp_tests_shared库的,这里就不讲ndk怎么实现,语言的本身只是更方便。

其实android系统的实现都是用的C++和C,通过java提供的jni功能完成所有的到java的转换。

app层用java可以更方便开发者快速有效地开发功能比较好的程序,而不需要关注底层的实现,需要明确注意client和implementation的身份。

说了一大段的废话,其实最重要的是上面标红色的部分。

最后再说一句它是用ant打包的。


再来看proj.linux构建linux程序

这个更简单只有一个main.cpp文件

#include "../Classes/AppDelegate.h"
#include "cocos2d.h"

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <string>

USING_NS_CC;

int main(int argc, char **argv)
{
    // create the applic
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值