广告
返回顶部
首页 > 资讯 > 移动开发 >Android实战之Cocos游戏容器搭建
  • 834
分享到

Android实战之Cocos游戏容器搭建

2024-04-02 19:04:59 834人浏览 泡泡鱼
摘要

目录一、前言二、准备工作三、构建cocos游戏.so文件四、制作自己的游戏容器五、总结六、如何使用一、前言 现在市面上很多app有游戏中心功能,最早的有微信小游戏和QQ小游戏,再后来

一、前言

现在市面上很多app有游戏中心功能,最早的有微信小游戏和QQ小游戏,再后来像bilibili、喜马拉雅、爱奇艺、比心等等应用中也加入了游戏中心模块。本篇文章将介绍如何上手搭建cocos creater游戏容器,先来看看效果:

二、准备工作

  • 安装最新版本CocosDashboard
  • 在Dashborad下载最新版本编辑器

Android Studio安装NDK,我这里安装的是21.1.6352462,目前为止比较稳定

在CocosDashboard新建HelloWorld项目并打开运行,我这里用的3.1.1版本

打开CocosCreator菜单栏偏好设置,在外部程序栏中设置Android NDK和Android SDK路径

三、构建cocos游戏.so文件

在CocosCreator菜单栏选择项目-构建发布,选择发布平台:安卓,点击构建,等大概几分钟

  • 成功后,用Android Studio打开文件夹里生成的proj项目,并运行该项目到手机上,这里游戏资源加载的是proj同级目录assets,后续,我们会将assets压缩包zip存放在我们服务器,达到用户下载解压后加载启动游戏的目的。
  • 为了后续游戏容器能加载本地filePath下的游戏资源,需要修改JniCocosActivity.cpp里的Java_com_cocos_lib_CocosActivity_onCreateNative方法

  • ./gradlew assembleRelease打release包, 将instantapp-release.apk后缀改成zip,解压后获取lib下arm64-v8a/armeabi-v7a下的libcocos.so(构建版本设置那里可以勾选不同架构

四、制作自己的游戏容器

  • 创建module,包名为com.cocos.lib(为了和.so文件里保持一致,不然无法调用c方法)
  • module的清单文件加
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  • 将/Applications/CocosCreator/Creator/3.1.1/CocosCreator.app/Contents/Resources/resources/3D/engine-native/cocos/platfORM/android/java/libs拷贝到module/libs下
  • module下build.gradle添加
implementation fileTree(include: ['*.jar'], dir: 'libs')
  • 将.so文件放在module/src/main/jniLibs/下
  • 将/Applications/CocosCreator/Creator/3.1.1/CocosCreator.app/Contents/Resources/resources/3d/engine-native/cocos/platform/android/java/src/com/cocos/lib下的java文件复制到module/src/main/java/com.cocos.lib下
  • 修改文件CocosActivity.java,因为游戏页面官方推荐用多进程来做,所以这里退出游戏,即将游戏进程kill
// 加一个filePath参数
private native void onCreateNative(Activity activity, AssetManager assetManager, String obbPath, int sdkVersion, String filePath);
// 外部传入游戏资源路径
protected String filePath() {
    return "";
}
@Override
protected void onCreate(Bundle savedInstanceState) {
    ...
    onCreateNative(this, getAssets(), getAbsolutePath(getObbDir()), Build.VERSION.SDK_INT, filePath());
}
@Override
public void onBackPressed() {
    super.onBackPressed();
    System.exit(0);
}

五、总结

自此,我们游戏容器制作完毕,我也将该篇的游戏容器module传到了jitpack,可以直接使用:

allprojects {
		repositories {
			...
			Maven { url 'https://jitpack.io' }
		}
}
dependencies {
	   implementation 'com.GitHub.qq326646683:cocos-creator-android:1.0.0'
}

六、如何使用

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
  • 下载游戏zip并解压
  • 继承CocosActivity,并将解压后的路径赋值给filePath
class CocosGameActivity: CocosActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
    }
    override fun filePath() = intent.getStringExtra("path")
}

清单文件:

 <application>
        <meta-data
            android:name="android.app.lib_name"
            android:value="cocos" />
        <activity android:name=".CocosGameActivity" android:process=":cocos"/

到此这篇关于Android实战之Cocos游戏容器搭建的文章就介绍到这了,更多相关AndroidCocos容器搭建内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Android实战之Cocos游戏容器搭建

本文链接: https://www.lsjlt.com/news/152911.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作