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]; }