nativescript-phaser-ce
由 triniwiz 提供 | v1.0.0-alpha2
使用 Phaser-ce 在 NativeScript 中构建原生 2D 游戏的工具 👾
npm i --save nativescript-phaser-ce

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 })

给定一个来自 TNSCanvascanvas,返回一个在其中绘制的 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 月