npm i --save nativescript-phaser-ce
- 版本:1.0.0-alpha2
- GitHub: https://github.com/triniwiz/nativescript-phaser-ce
- NPM: https://npmjs.net.cn/package/nativescript-phaser-ce
- 下载
- 昨日:0
- 上周:0
- 上月:0
nativescript-phaser-ce
使用 Phaser-ce 在 NativeScript 中构建原生 2D 游戏的工具 👾
安装
npm i nativescript-phaser-ce
使用
将库导入到您的 JavaScript 文件中
import TNSPhaser from "nativescript-phaser-ce";
函数
TNSPhaser.game({ canvas, renderer: Phaser.WEBGL || Phaser.CANVAS, ...extras })
给定一个来自 TNSCanvas
的 canvas
,返回一个在其中绘制的 Phaser.Game
。
属性
属性 | 类型 | 描述 | 默认值 |
---|---|---|---|
canvas | TNSCanvas | 必需:Phaser.Game 将渲染到的 canvas | null |
renderer | number? | 可选:选择渲染器类型,例如 Phaser.CANVAS (1) ,Phaser.WEBGL(2) | 1 |
width | number? | 可选:Phaser.Game 的高度 | canvas 高度 |
height | number? | 可选:Phaser.Game 的宽度 | canvas 宽度 |
title | string? | 可选:Phaser.Game 的标题 | "tns-phaser-game" |
preventLoop | boolean? | 可选:防止应用在每一帧调用 canvas.nativeView.flush() |
false |
返回
属性 | 类型 | 描述 |
---|---|---|
game | Phaser.Game |
用于渲染游戏逻辑的 Phaser-ce 游戏 |
示例
const game = TNSPhaser.game({ canvas });
它做什么?
在底层,TNSPhaser 维护了一些库的全局实例。
window.PIXI = require("phaser-ce/build/custom/pixi");
window.p2 = require("phaser-ce/build/custom/p2");
window.Phaser = require("phaser-ce/build/phaser");
可以包含其他库,但不是必需的。例如,您可以用相同的方式导入自定义的 Creature 库。我们还 覆盖了 PIXI.WebGLRenderer.updateTexture
以使其与 NativeScript 兼容。
最后,当创建 TNSPhaser.Game
的新实例时,我们将 document.readyState
设置为 'complete'
并保存 context
的全局实例。
global.__context = context;
global.document.readyState = "complete";
然后我们创建一个标准的渲染循环并调用 canvas.nativeView.flush()
以清除帧队列并渲染我们的上下文。
const render = () => {
requestAnimationFrame(render);
canvas.nativeView.flush();
};
许可
Apache 许可证版本 2.0,2004 年 1 月