import node; //constants var SPEED: int const = 10; var WIDTH: int const = 143; var HEIGHT: int const = 75; //lifecycle functions fn onLoad(node: opaque) { print "onLoad() called"; } fn onInit(node: opaque) { print "onInit() called"; node.loadNodeTexture("sprites:/little_plane.png"); } fn onStep(node: opaque) { //TODO: move } fn onFree(node: opaque) { print "onFree() called"; node.freeNodeTexture(); } fn onDraw(node: opaque) { // print "onDraw() called"; var parent: opaque = node.getParentNode(); var px = 0; var py = 0; //TODO: get world position if (parent != null) { px = parent.getNodePositionX(); py = parent.getNodePositionY(); } node.drawNode(node.getNodePositionX() + px, node.getNodePositionY() + py, WIDTH, HEIGHT); } //event functions fn onKeyDown(node: opaque, event: string) { if (event == "character_up") { node.setNodeMotionY(-SPEED); return; } if (event == "character_down") { node.setNodeMotionY(SPEED); return; } if (event == "character_left") { node.setNodeMotionX(-SPEED); return; } if (event == "character_right") { node.setNodeMotionX(SPEED); return; } } fn onKeyUp(node: opaque, event: string) { if (event == "character_up" && node.getNodeMotionY() < 0) { node.setNodeMotionY(0); return; } if (event == "character_down" && node.getNodeMotionY() > 0) { node.setNodeMotionY(0); return; } if (event == "character_left" && node.getNodeMotionX() < 0) { node.setNodeMotionX(0); return; } if (event == "character_right" && node.getNodeMotionX() > 0) { node.setNodeMotionX(0); return; } } fn onMouseMotion(node: opaque, x: int, y: int, xrel: int, yrel: int) { // print "entity.toy:onMouseMotion(" + string x + ", " + string y + ", " + string xrel + ", " + string yrel + ")"; } fn onMouseButtonDown(node: opaque, x: int, y: int, button: string) { // print "entity.toy:onMouseButtonDown(" + string x + ", " + string y + ", " + button + ")"; //jump to pos node.setNodePositionX(x - WIDTH / 2); node.setNodePositionY(y - HEIGHT / 2); } fn onMouseButtonUp(node: opaque, x: int, y: int, button: string) { // print "entity.toy:onMouseButtonUp(" + string x + ", " + string y + ", " + button + ")"; } fn onMouseWheel(node: opaque, xrel: int, yrel: int) { // print "entity.toy:onMouseWheel(" + string xrel + ", " + string yrel + ")"; }