TyranoScript 从入门到魔改 3 启动器

TyranoScript 从入门到魔改 3 启动器

💡 原文中文,约2900字,阅读约需7分钟。
📝

内容提要

本文介绍如何用 Electron 替换 TyranoScript 官方启动器 tyranorider:先备份 package.json,安装 Electron 并配置 main.js 加载 index.html,即可运行游戏并获得新版开发者工具和 ES6 支持;打包使用 electron-builder,需补装 fs-extra 和 jquery,pack 用于测试,dist 生成安装包;还可用 remote 模块实现全屏。

🔎

延伸解读

替换启动器的可行性

TyranoScript 框架本身几乎不依赖官方启动器 tyranorider,其功能基本都包含在 js 文件中,因此可以摆脱官方启动器,在任何基于现代浏览器内核的程序上运行。但直接使用 Chrome 浏览器会因限制本地文件 ajax 请求而需要额外配置。

Electron 带来的开发便利

官方启动器 tyranorider 使用的 NW.js 版本较低,内置开发者工具老旧。替换为 Electron 后,开发者工具基本保持最新状态,调试效率大幅提升,同时可以在 TyranoScript 中使用 ES6 新语法。

打包注意事项

使用 electron-builder 打包时,由于代码中通过 require 引用了 fs-extra 和 jquery,需要额外安装这两个依赖,否则会报错。建议先用 npm run pack 打包到 dist 文件夹测试,确认无误后再用 npm run dist 生成各系统安装包。

全屏功能的实现

在 Electron 中实现全屏,需要在渲染进程获取窗口对象。借助 require('electron').remote 可以调用主进程方法,例如 remote.getCurrentWindow().setFullScreen(true)。即使在渲染进程,也能直接用 require 获取 npm 安装的依赖。

❓

Q&A

如何用 Electron 替换 TyranoScript 的官方启动器 tyranorider?

先备份 package.json,然后安装 Electron:npm i -D electron。修改 package.json 的 main 为 main.js,并添加 start 脚本:"start": "electron ."。创建 main.js,使用 BrowserWindow 加载 index.html,并打开开发者工具。运行 npm start 即可启动游戏。

为什么 TyranoScript 可以脱离官方启动器运行?

因为 TyranoScript 框架基本不依赖启动器功能,全部功能都包含在 js 文件中,只有极少量使用 NW.js API。因此它可以在任何基于现代浏览器内核的程序上运行,甚至直接用 Chrome 浏览器打开(但需配置以允许本地文件 ajax 请求)。

用 Electron 替换启动器后有什么好处?

可以获得最新版的开发者工具,调试效率大幅提升;同时可以在 TyranoScript 中使用 ES6 新语法。

如何用 electron-builder 打包 TyranoScript 游戏?

安装 electron-builder:npm i -D electron-builder。在 package.json 的 scripts 中添加:"pack": "electron-builder --dir" 和 "dist": "electron-builder"。由于代码中 require 了 fs-extra 和 jquery,需先安装这两个依赖。运行 npm run pack 测试打包,npm run dist 生成安装包。

electron-builder 的 pack 和 dist 命令有什么区别?

pack 只打包到 dist 文件夹,适合测试;dist 会直接打包成各个系统的安装包。推荐先用 pack 检查是否有报错,再使用 dist。

替换启动器后如何实现全屏功能?

在渲染进程中通过 require('electron').remote 调用主进程方法:require('electron').remote.getCurrentWindow().setFullScreen(true)。注意即使在渲染进程也可以直接用 require 拿到 npm 安装的依赖。

🏷️

标签

➡️

继续阅读