Entity and sprite plan
This commit is contained in:
parent
7e679e3cc3
commit
7165f9ee89
12
sunpy/canvas/entity.js
Normal file
12
sunpy/canvas/entity.js
Normal 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`");
|
||||
}
|
||||
}
|
|
@ -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) {
|
||||
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user