npm i --save nativescript-tinyengine
- 版本:1.0.3
- GitHub: https://github.com/Upd4ting/nativescript-tinyengine
- NPM: https://npmjs.net.cn/package/nativescript-tinyengine
- 下载
- 昨天:0
- 上周:1
- 上个月:3
小型引擎
为 NativeScript 的小型 2D 游戏引擎。
安装
tns plugin add nativescript-tinyengine
屏幕截图
使用方法
首先在你的 XML
中添加一个 GridLayout
<GridLayout id="container" width="300" height="300" backgroundColor="lightgreen">
</GridLayout>
然后在你的 typescript
文件中导入所有必需的项
import { World, Entity, Vector2, OBB, CollisionResponse, Shape, Component, CircleShape, CubeShape, ImageShape } from 'nativescript-tinyengine';
现在你只需要在你的 GridLayout 上实例化一个 World 对象,然后开始使用这个库。以下是基本代码。
let container: LayoutBase = page.getViewById("container");
let world: World = new World(container, 300, 300);
let cubeEntity: Entity = new Entity(new Vector2(0, 50), new Vector2(0, 0), 45, new CubeShape(20, 20, '#FFFFFF'));
world.addEntity(cubeEntity);
setInterval(function () { world.tick(); }, 20);
文档
您可以在这里找到库的文档。
组件 / 碰撞
Component
是一个你可以实现的接口。这个接口有以下方法
onStart(entity: Entity)
在附加实体的第一次帧更新之前调用。onUpdate(entity: Entity, deltatTime: number)
在附加实体的每个帧更新时调用。onCollide(collider: Entity, collided: Entity)
当附加实体与其他实体碰撞时调用。onDestroy(entity: Entity)
当附加实体被销毁时调用。getClassName(): string
你需要在这个方法中返回你的类名。
组件可以通过实体类的 addComponent<T extends Component>(type: (new () => T))
方法附加。
每个实体都有一个属性 collisionResponse
,可以设置为 NONE
或 COLLIDE
。这就是如何处理碰撞。如果你想要自定义,请将碰撞响应设置为 NONE
,并在组件的 onCollide(collider: Entity, collided: Entity)
方法中实现自定义逻辑。
许可证
Apache 许可证版本 2.0,2019 年 5 月