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

Project1

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

[原创发布] 打包&封装 RpgMMV的Linux项目

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1067
在线时间
33 小时
注册时间
2018-8-30
帖子
22
跳转到指定楼层
1
发表于 2020-3-23 19:56:51 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

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

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

x
本帖最后由 asd8089872 于 2020-3-23 20:01 编辑

关于上次使用Electron打包的Linux的项目,我们会发现,游戏的代码和素材是暴露在外的。
这次我提供了第二版的Linux虚拟机,帮助开发者完成Linux环境下的测试、打包、封装的工作,里面有一个完整的范例帮助大家掌握打包技术。

链接:https://pan.baidu.com/s/17I1gb_Hbqtbsq418vcr96g
提取码:wnxm

所以这次我们使用一个新的方法保护自己的代码和游戏素材。

第一步打包(可省略):我们使用electron-packager重新对项目进行打包

1、我们需要在项目目录中新建一个 "main.js"文件 ,这个文件是electron的主程序文件,用来建立electron 窗口显示网页内容。下面是提供的一个范例,可以直接复制使用(其中涉及的nodejs)
const { app, BrowserWindow, Menu } = require('electron')
const path = require('path')
const url = require('url')
let mainWindow;
function createWindow() {
    mainWindow = new BrowserWindow({ fullscreen: true });
    Menu.setApplicationMenu(null)
    mainWindow.loadURL(url.format({
        pathname: path.join(__dirname, './index.html'),
        protocol: 'file:',
        slashes: true
    }))
    mainWindow.on('closed', function () {
        mainWindow = null
    });
}
app.on('ready', createWindow);
app.on('window-all-closed', function () {
if (process.platform !== 'darwin') {
        app.quit()
    }
});

app.on('activate', function () {
    if (mainWindow === null) {
        createWindow()
    }
})
2、其次我们要修改 "package.json"文件的内容(这一步需要你掌握json的基本知识):给项目起一个名字:"name": "mvlearn"
在name下面增加一个版本号元素:"version": "0.0.1"
将“main”元素的值修改为刚刚我们建立的"main.js"文件:"main": "main.js"
增加”devDependencies”元素
Package.json最后呈现的内容为:(标红的为修改过的)
{
    "name": "mvlearn",
        "version":"0.0.2",

    "main": "main.js",
    "js-flags": "--expose-gc",

    "window": {
        "title": "",
        "toolbar": false,
        "width": 320,
        "height": 240,
        "icon": "icon/icon.png",
        "fullscreen": true
    },
    "devDependencies": {
        "electron": "8.0.2",
        "electron-packager": "14.2.1"
    }

}
3、最后,在项目文件夹中,鼠标右键选择“在终端中打开”,在终端中右键粘贴并回车执行打包命令,你的游戏项目就打包好了,可以去上一级目录下的packaged文件夹中查看打包好的项目压缩包
打包命令为:
electron-packager ./ {json文件中name元素的值} --platform=linux --arch=x64 --asar --overwrite --electron-version 8.0.2 --out ../packaged

理论上,这个打包的方法可以打包为win、mac、Linux平台的程序,甚至可以打包到Arm处理的Linux系统上。

第二步:使用AppimageKit将项目封装
Appimage工具包是Linux系统流行的封装打包工具,可以将一个项目工程打包为一个程序文件,允许发行到任意的Linux发行版中。
我们可以在他的github主页中得到它们:
打开网址https://github.com/AppImage/AppImageKit/releases,找到最新版本的:appimagetool-x86_64.AppImage、AppRun-x86_64。我们只需要这两个文件即可。

1、我们首先构建出Appimage的项目结构(新建文件夹)
新建这样一个目录结构:{游戏的英文名.AppDir}/usr/bin/
将打包的electron项目文件夹里的所有文件,全部拷贝到上面路径的bin文件夹中。
将AppRun-x86_64文件改名为“AppRun”,拷贝到{游戏的英文名.AppDir}文件夹中。
为游戏找一个256×256像素的(png格式)图片,拷贝到{游戏的英文名.AppDir}文件夹中。
在{游戏的英文名.AppDir}文件夹中创建一个“游戏的英文名.desktop”这样的.desktop文件,并写入如下的内容:
[Desktop Entry]
Type=Application
Name={你的游戏的名字}
Exec=sh -c {bin文件夹中的应用程序名称,往往是游戏的英文名字}
Comment=test game
Icon=icon
Categories=Game;
Terminal=false
2、然后回到Appimage项目结构外面的文件夹中,并把appimagetool-x86_64.AppImage拷贝到这里,鼠标右键选择“在终端中打开”,在终端中右键粘贴并回车执行下面的命令完成打包封装:
./appimagetool-x86_64.AppImage ./游戏的英文名.AppDir/

你的游戏就被打包为一个.Appimage文件,输出在文件夹中,双击文件就能打开游戏。
你可以随意修改文件的文件名,建议将后缀删去。

评分

参与人数 1星屑 +100 收起 理由
fux2 + 100 精品文章

查看全部评分

RPGMakerMV小白学习中...

Lv4.逐梦者

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

开拓者

4
发表于 2020-3-24 19:48:54 | 只看该作者
可以的,拓展了新领域
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
星屑
1067
在线时间
33 小时
注册时间
2018-8-30
帖子
22
3
 楼主| 发表于 2020-3-24 19:47:29 | 只看该作者
耀斑姬 发表于 2020-3-23 20:00
做的不错,希望有使用linux的制作者能受到你的启发,感谢你的教程
inux虽然小众,但是如果有人付出,他的付 ...

嗯,多谢捧场
RPGMakerMV小白学习中...
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1819
在线时间
115 小时
注册时间
2018-4-11
帖子
17
2
发表于 2020-3-23 20:00:04 | 只看该作者
做的不错,希望有使用linux的制作者能受到你的启发,感谢你的教程
inux虽然小众,但是如果有人付出,他的付出必然会获得回报的
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-12 10:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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