UNPKG

seed-engine

Version:

A Lightweight 2D game engine using WebGL2. The engine is designed on the focus of creating a bridge between creating and publishing games to the Seed Network as modules.

121 lines (92 loc) 3.36 kB
import log from '../helper/Log'; import Test from '../helper/Test'; import Loader from '../../src/utils/Loader'; import { Scene, SceneManager, Viewport, GameObject, Point, Renderable2D, PersistentObject, PersistentManager, SceneObject } from '../../src/entry'; export default class GameObjectPatternTest extends Test { constructor() { super('Game Object Pattern Test', 10); } steps() { let scene = null; let viewport = null; let gameObject = null; let deregister = null; let pObject = null; this.addStep('Create Persistent Object', () => { pObject = new PersistentObject(new Point(10, 10, 10), new Point(5, 5, 5), 0); return PersistentManager.persistentObjects[pObject.id] == pObject; }); this.addStep('Persistent Object End', () => { return new Promise((res, rej) => { pObject.onEnd = () => { return res(true); } }); }); this.addStep('Persistent Object Unpause', () => { return new Promise((res, rej) => { pObject.onUnpause = () => { pObject.end(); return res(true); } }); }); this.addStep('Persistent Object Pause', () => { return new Promise((res, rej) => { pObject.onPause = () => { pObject.unpause(); return res(true); } }); }); this.addStep('Persistent Object Update', () => { return new Promise((res, rej) => { pObject.onUpdate = () => { pObject.pause(); return res(true); }; }); }); scene = new Scene(); viewport = new Viewport(0, 0, 400, 400); SceneManager.addScene(scene); deregister = scene.registerViewport(viewport); this.addStep('Create Scene Object', () => { gameObject = new SceneObject(new Point(10, 10, 10), new Point(10, 10, 1), 45); return scene.sceneObjects[0] == gameObject; }); this.addStep('Scene Object End', () => { return new Promise((res, rej) => { gameObject.onEnd = () => { deregister(); SceneManager.removeScene(); return res(true); } }); }); this.addStep('Scene Object Unpause', () => { return new Promise((res, rej) => { gameObject.onUnpause = () => { gameObject.end(); return res(true); } }); }); this.addStep('Scene Object Pause', () => { return new Promise((res, rej) => { gameObject.onPause = () => { gameObject.unpause(); return res(true); } }); }); this.addStep('Scene Object Update', () => { return new Promise((res, rej) => { gameObject.onUpdate = () => { gameObject.pause(); return res(true); } }); }) } }