Entity and sprite plan

This commit is contained in:
Emily 2020-04-21 15:55:56 +02:00
parent 7e679e3cc3
commit 7165f9ee89
4 changed files with 22 additions and 20 deletions

12
sunpy/canvas/entity.js Normal file
View File

@ -0,0 +1,12 @@
export class Entity {
constructor() {}
async render(renderNode) {}
async update(renderNode) {}
}
export class Sprite extends Entity {
constructor(image) {
if (!(image instanceof Image))
throw TypeError("Image has to be instance of `Image`");
}
}

View File

@ -3,6 +3,7 @@ import { PropertyNode } from "../node/nodes/propertynode.js";
import { PropertyReader, Property } from "../node/propertyreader.js";
import { sleep } from "../core/utils.js";
import { Vector } from "../core/vector.js";
import { Entity } from "./entity.js";
register("canvas", initRenderNode);
@ -31,7 +32,7 @@ export class RenderNode extends PropertyNode {
this.gl.depthFunc(this.gl.LEQUAL);
this.fps = 0;
this.objects = [];
this.entities = [];
this.running = false;
}
@ -52,11 +53,11 @@ export class RenderNode extends PropertyNode {
this.running = false;
}
add(object) {
if (!(object instanceof Renderable))
throw TypeError("Object must be instance of Renderable");
add(entity) {
if (!(entity instanceof Entity))
throw TypeError("entity must be instance of `Entity`");
this.objects.push(object);
this.entities.push(entity);
}
async loop() { // TODO: Fix all variables
@ -83,22 +84,11 @@ export class RenderNode extends PropertyNode {
}
async render() {
this.gl.clearColor(0.0, 0.0, 0.0, 1.0);
this.gl.clear(this.gl.COLOR_BUFFER_BIT | this.gl.DEPTH_BUFFER_BIT);
for (const object of this.objects) {
await object.render(this);
for (const entity of this.entities) {
await entity.render(this);
}
}
}
export class Renderable {
constructor() {
}
async render(renderNode) {
}
}

View File

@ -6,7 +6,7 @@ export class PropertyNode extends SwapNode {
super(node, swapNode);
if (!(propertyReader instanceof PropertyReader))
throw TypeError("propertyReader must be an instance of PropertyReader");
throw TypeError("propertyReader must be an instance of `PropertyReader`");
this.propertyReader = propertyReader;

View File

@ -5,7 +5,7 @@ export class SwapNode extends BaseNode {
super(node);
if (!(swapNode instanceof Node))
throw TypeError("swapNode must be instance of Node");
throw TypeError("swapNode must be instance of `Node`");
this.swapNode = swapNode;