设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 17744|回复: 32
打印 上一主题 下一主题

[原创发布] Rpg Maker MV android 打包方案(加入自定义存档目录设置)

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1380
在线时间
140 小时
注册时间
2007-8-10
帖子
21
跳转到指定楼层
1
发表于 2020-4-19 21:34:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 huhao1987 于 2020-4-28 10:10 编辑

大家好,我算是初来乍到了,虽然注册了很久,但几乎没发过贴.最近是玩过了某个游戏才开始研究RMMV的,因为本职是Android程序员,所以对和Android有关的东西都会有点敏感.研究了下目前各类把RMMV游戏打包成android格式的方法,主流的有两种方式(应该).

一种是使用github上的MV Android Client,基于Android studio,相对于原生,但是操作比较复杂,而且是基于他项目的复制粘贴,看起来运行没问题,但是实际上项目内很多东西修改起来很复杂,比如包名和一些代码.
另一种则是比较常见的傻瓜打包工具,这类工具简单方便,但是可塑性比较差,比如用的应该是比较久版的sdk之类的.

所以废话了这么多,终于该说正题了.我用了2天时间写了个依赖库,基于原生android,也就是必须要使用Android studio,但内部代码量非常少,可以使用最新sdk,可以自己加代码(如果你想学着写点Android代码给游戏加点料之类的),生成出来的apk完全是你自己的东西,包括包名,签名之类的.后面的版本会对本地存档的bug进行android端的修复(因为这个问题在目前版本的Android上其实是用纯JS实现不了的).后续还会加入对obb的支持,也就是可以上架Google Play(这个我知道对国内开发者可能意义不大).

项目介绍:https://github.com/huhao1987/RMMV-android-deployment/blob/master/README.zh_CN.md

有任何问题请留言,或者在github上开issues.


本项目提供了一个可以帮助RMMV游戏作者制作_安卓_版本游戏的依赖库,并且使用方便快捷.
本项目使用kotlin编写,所以代码比Java更易读和简便.

更新日志
添加Android本地存档支持(基于我编写的插件)

添加自定义存档目录


基本步骤

1. 首先你要下载最新Android Studio, 目前最新版是3.6.3.
2. 创建一个新项目或者打开一个已有的项目.
3. 在项目环境刷新完毕后,选择"build.gradle(Project:xxxx)" 在allproects里加入 "maven { url 'https://jitpack.io' }"
  1. allprojects {
  2.     repositories {
  3.         google()
  4.         jcenter()
  5.          maven { url 'https://jitpack.io' }

  6.     }
  7. }
复制代码


4. 在 "build.gradle(Module:app)"中加入下面一行
  1. implementation 'com.github.huhao1987:RMMV-android-deployment:1.0.8'
复制代码

5. 选择 "manifests", 在"activity"标签内添加
   
  1.   android:configChanges="orientation|screenSize"
  2.        android:screenOrientation="sensorLandscape"
复制代码

此步骤可以保证游戏运行于横屏

如果你的游戏需要网络支持
5.1 请添加

   
  1. <uses-permission android:name="android.permission.INTERNET" />
  2.     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
复制代码

5.2 在"application"标签内添加

  1.         android:networkSecurityConfig="@xml/network_security_config"
复制代码

5.3 右键点击 "app"->"New"->"Android Resource Directory", 在Resource type里选择"xml". 右键点击 "xml"->"New"->"XML Resource file",命名为"network_security_config",然后复制以下代码

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <network-security-config>
  3.     <base-config cleartextTrafficPermitted="true" />
  4. </network-security-config>
复制代码

5.1 和 5.2设置可以让游戏有网络连接权限.5.2能保证连接到"http"和"https"都不被阻断

在项目的主activity的layout文件中加入下面的控件,默认主activity为MainActivity, 它的layout文件一般为activity_main.
  1. <hh.rpgmakerplayer.webviewmodule.rpgPlayerView
  2.         android:id="@+id/rpgwebview"
  3.         android:layout_width="match_parent"
  4.         android:layout_height="match_parent" />
复制代码

如果你的项目里没有assets目录,右键点击 "app"-"New"->"Folder"->"Assets Folder",然后把你游戏的www文件夹复制进去.

在MainActivity的oncreate方法中加入下面几行

kotlin:
  1. rpgwebview.build()
  2. rpgwebview.Playgame("//android_asset/www/index.html")
复制代码

Java:
  1. rpgPlayerView rpgwebview=findViewById(R.id.rpgwebview)
  2. rpgwebview.build()
  3. rpgwebview.Playgame("//android_asset/www/index.html")
复制代码

在手机上编译并且运行你的游戏.
高级操作
除去基本步骤,你也可以使用一些其他属性

1)全屏游戏或者不全屏
  1. rpgwebview
  2. .isfullscreen(false/true)
  3. .build()
复制代码

2)使用你自己的evaluateJavascript运行游戏
  1. rpgwebview
  2. .setevaluateJavascript(xxxxxx)
  3. .build()
复制代码

3)Android 存档支持
由于Android系统的限制,RMMV无法将存档保存在Android本地,我写了个插件来支持。 用法很简单,首先使用本项目来创建你的Android游戏项目,从 这里下载hh_Android_save.js,然后在你的RMMV项目中开启这个插件。

记住修改之后更新你Android项目中的assets文件夹

之后当你测试和玩游戏的时候,游戏存档会被存储在app的内部存储中,如果你root过,可以在这个文件夹下找到游戏存档。

4) 自定义存档设置
添加自定义存档设置,本功能允许你把存档保存在设置的目录里,但是你必须自己获取android的写文件权限。
  1. rpgwebview.setupcustompath("your path")
  2. rpgwebview.build()
复制代码

5)更多新功能...敬请期待

评分

参与人数 6+6 收起 理由
Darknessforever + 1 Excellent articles
hryio + 1
mulier + 1 精品文章
walf_man + 1 塞糖
白嫩白嫩的 + 1 精品文章
CxyGL + 1 塞糖

查看全部评分

Lv4.逐梦者

梦石
0
星屑
11357
在线时间
611 小时
注册时间
2016-8-25
帖子
1400

R考场第七期纪念奖

2
发表于 2020-4-19 22:46:28 | 只看该作者
感谢大佬
然而好像还是不能用一些插件
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1380
在线时间
140 小时
注册时间
2007-8-10
帖子
21
3
 楼主| 发表于 2020-4-20 06:13:07 | 只看该作者
PLeaseS 发表于 2020-4-19 22:46
感谢大佬
然而好像还是不能用一些插件

请问是什么插件呢?我用RMMV时间很短,不知道哪些插件会和Android本身属性有冲突
回复 支持 1 反对 1

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1380
在线时间
140 小时
注册时间
2007-8-10
帖子
21
4
 楼主| 发表于 2020-4-21 09:35:23 | 只看该作者
重大新更新:Android本地存档支持
回复 支持 2 反对 1

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
14622
在线时间
718 小时
注册时间
2011-7-16
帖子
1428

开拓者

5
发表于 2020-4-21 11:32:43 | 只看该作者
本帖最后由 walf_man 于 2020-4-21 11:35 编辑

不错,教程步骤清晰明了,内容翔实,可以说是非常好的教程,学习了
支持楼主为rmmv生态贡献自己的力量

edit:国内下载很卡,建议补充使用国内镜像的相关教程,虽然说百度一大把,但不懂这块知识得同学,可能都不知道该怎么百度
RMMV网络插件,开源免费,内含服务器端,无需强制登录,云数据,弹幕,云存档,排名,兑换码,版本检测,可自由上架下架删除。q群399090587
免打包运行MV游戏,云游戏,安卓App雷神游戏厅,在线玩游戏,上传下载游戏
开源游戏:重装机兵之重装归来【RMMV制作】全球首款按照美剧分季分集的方式发布的游戏
体素画 -- MV画3D像素图的画板
RMMV显示3D模型和场景的插件
RMMV显示spine骨骼动画的插件
RMMV秘密通道插件
突破敌群数量上限8个的插件
在rmmv中显示gif动态图片的插件
一款可以在mv游戏界面的任意位置显示任意文字的插件
RMMV Toast 插件 带物品得失提示,可以设置开启关闭 兼容yep itemcore
制作一个改名卡道具插件、调整标题页面菜单的插件、在标题页面之前显示大段文字的插件、标题页面显示版本号的插件
物品得失自动提示自动上色自动换行插件
我的Q群 663889472
另外,我的插件、范例、游戏都在这里
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1833
在线时间
151 小时
注册时间
2020-2-10
帖子
16
6
发表于 2020-4-21 11:44:46 | 只看该作者
好物,非常感谢
Lorem ipsum dolor sit amet
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1380
在线时间
140 小时
注册时间
2007-8-10
帖子
21
7
 楼主| 发表于 2020-4-21 12:05:55 | 只看该作者
walf_man 发表于 2020-4-21 11:32
不错,教程步骤清晰明了,内容翔实,可以说是非常好的教程,学习了
支持楼主为rmmv生态贡献自己的力量

Android studio吗?我看能不能传个百度网盘
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1380
在线时间
140 小时
注册时间
2007-8-10
帖子
21
8
 楼主| 发表于 2020-4-28 10:10:59 | 只看该作者
加入更新:自定义存档目录设置
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
390
在线时间
48 小时
注册时间
2020-4-24
帖子
61
9
发表于 2020-5-3 13:42:58 | 只看该作者
大佬,你的方法Playgame()第二个参数的Boolean值true代表啥路径,false呢
风碎于形
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1380
在线时间
140 小时
注册时间
2007-8-10
帖子
21
10
 楼主| 发表于 2020-5-3 15:36:16 | 只看该作者
本帖最后由 huhao1987 于 2020-5-3 15:44 编辑
haiyin 发表于 2020-5-3 13:42
大佬,你的方法Playgame()第二个参数的Boolean值true代表啥路径,false呢


是判断是否为网络链接,也就是传网络url过去,把这个设置成true能直接运行.
不过这个功能只是我之前测试的时候用的,并不算完善,我也没深入写,默认是false,后面可能会删掉
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-16 22:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表