Files
Airport/assets/scripts/gameplay/scene.toy
2023-03-05 13:11:06 +11:00

50 lines
1.0 KiB
Plaintext

import standard;
import node;
var tilemap: opaque = null;
var player: opaque = null;
var collisionMap: [[bool]] = null; //cache this, since it won't change during a level
var stepCounter: int = 0;
var drawCounter: int = 0;
//lifecycle functions
fn onLoad(node: opaque) {
tilemap = node.loadChild("scripts:/gameplay/tilemap.toy");
player = node.loadChild("scripts:/gameplay/lejana.toy");
}
fn onInit(node: opaque) {
tilemap.callNodeFn("generateFromSeed", clock().hash(), 16, 16);
collisionMap = tilemap.callNodeFn("getCollisionMap");
}
fn onStep(node: opaque) {
if (++stepCounter >= 60) {
print "FPS: " + string drawCounter + " / 60";
stepCounter = 0;
drawCounter = 0;
}
}
fn onDraw(node: opaque) {
drawCounter++;
}
//utils - polyfills
fn loadChild(parent: opaque, fname: string) {
var child: opaque = loadNode(fname);
parent.pushNode(child);
return child;
}
//connective functions
fn getCollisionAt(node: opaque, x: int, y: int) {
if (collisionMap == null) {
return false;
}
return collisionMap[x][y];
}