From 77cd869ffcc0ebe2916feee3835291fef0812893 Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Wed, 5 Jul 2023 01:31:09 +1000 Subject: [PATCH] Fixed global bug --- Box | 2 +- assets/scripts/init.toy | 95 +++++++---------------- assets/scripts/tilemap/renderer-child.toy | 8 +- assets/scripts/tilemap/renderer.toy | 18 +++++ 4 files changed, 51 insertions(+), 72 deletions(-) diff --git a/Box b/Box index 8b543dc..2da73a9 160000 --- a/Box +++ b/Box @@ -1 +1 @@ -Subproject commit 8b543dcb821c50ad29d10d9d39fb8cadc8ccd6ab +Subproject commit 2da73a99eb1d11f5eeeb0cced4a583c6bfd8c211 diff --git a/assets/scripts/init.toy b/assets/scripts/init.toy index 587563a..65f9d77 100644 --- a/assets/scripts/init.toy +++ b/assets/scripts/init.toy @@ -1,75 +1,36 @@ -//Globals go here +import standard; +import engine; +import input; -//constants for generating maps -var ROOM_MIN_WIDTH: int const = 4; //minimum safe value 4 -var ROOM_MIN_HEIGHT: int const = 4; +//input settings, mapping SDL2's virtual keys to event names +mapInputEventToKeyDown("character_up", "w"); //event, keysym +mapInputEventToKeyDown("character_left", "a"); //event, keysym +mapInputEventToKeyDown("character_down", "s"); //event, keysym +mapInputEventToKeyDown("character_right", "d"); //event, keysym -var ROOM_MAX_WIDTH: int const = 12; -var ROOM_MAX_HEIGHT: int const = 12; +mapInputEventToKeyUp("character_up", "w"); //event, keysym +mapInputEventToKeyUp("character_left", "a"); //event, keysym +mapInputEventToKeyUp("character_down", "s"); //event, keysym +mapInputEventToKeyUp("character_right", "d"); //event, keysym -var CELL_WIDTH: int const = 16; //minimum safe value ROOM_MAX_* + 4 -var CELL_HEIGHT: int const = 16; +mapInputEventToKeyDown("character_up", "up"); //event, keysym +mapInputEventToKeyDown("character_left", "left"); //event, keysym +mapInputEventToKeyDown("character_down", "down"); //event, keysym +mapInputEventToKeyDown("character_right", "right"); //event, keysym -var CELL_COUNT_X: int const = 3; -var CELL_COUNT_Y: int const = 3; +mapInputEventToKeyUp("character_up", "up"); //event, keysym +mapInputEventToKeyUp("character_left", "left"); //event, keysym +mapInputEventToKeyUp("character_down", "down"); //event, keysym +mapInputEventToKeyUp("character_right", "right"); //event, keysym + +mapInputEventToKeyDown("character_attack", "space"); //event, keysym + +//TODO: escape to kill the game -//constants for rendering tiles -var TILE_PIXEL_WIDTH: int const = 16; -var TILE_PIXEL_HEIGHT: int const = 16; +//this function must always be called, or the engine won't run +initWindow("Skylands", 1080, 720, false); //TODO: custom FPS setting - -//camera controls -var CAMERA_SCREEN_W: int const = 1080; -var CAMERA_SCREEN_H: int const = 720; - -var CAMERA_SCALE_X: float const = 1.0; -var CAMERA_SCALE_Y: float const = 1.0; - - -//this is a very bad habit... -var globalCameraX: int = 0; -var globalCameraY: int = 0; - - -//A quirk of the setup is that anything defined in the root of `init.toy` becomes a global object -//To resolve that, the configuration is inside a block scope -{ - import standard; - import engine; - import input; - - - //input settings, mapping SDL2's virtual keys to event names - mapInputEventToKeyDown("character_up", "w"); //event, keysym - mapInputEventToKeyDown("character_left", "a"); //event, keysym - mapInputEventToKeyDown("character_down", "s"); //event, keysym - mapInputEventToKeyDown("character_right", "d"); //event, keysym - - mapInputEventToKeyUp("character_up", "w"); //event, keysym - mapInputEventToKeyUp("character_left", "a"); //event, keysym - mapInputEventToKeyUp("character_down", "s"); //event, keysym - mapInputEventToKeyUp("character_right", "d"); //event, keysym - - mapInputEventToKeyDown("character_up", "up"); //event, keysym - mapInputEventToKeyDown("character_left", "left"); //event, keysym - mapInputEventToKeyDown("character_down", "down"); //event, keysym - mapInputEventToKeyDown("character_right", "right"); //event, keysym - - mapInputEventToKeyUp("character_up", "up"); //event, keysym - mapInputEventToKeyUp("character_left", "left"); //event, keysym - mapInputEventToKeyUp("character_down", "down"); //event, keysym - mapInputEventToKeyUp("character_right", "right"); //event, keysym - - mapInputEventToKeyDown("character_attack", "space"); //event, keysym - - //TODO: escape to kill the game - - - //this function must always be called, or the engine won't run - initWindow("Skylands", CAMERA_SCREEN_W, CAMERA_SCREEN_H, false); //TODO: custom FPS setting - - //kick off the logic of the scene graph - loadRootNode("scripts:/scene.toy"); -} +//kick off the logic of the scene graph +loadRootNode("scripts:/scene.toy"); diff --git a/assets/scripts/tilemap/renderer-child.toy b/assets/scripts/tilemap/renderer-child.toy index b2106d2..984d76d 100644 --- a/assets/scripts/tilemap/renderer-child.toy +++ b/assets/scripts/tilemap/renderer-child.toy @@ -4,8 +4,8 @@ import node; //lifecycle functions fn onLoad(node: opaque) { - node.setNodeScaleX(CAMERA_SCALE_X); - node.setNodeScaleY(CAMERA_SCALE_Y); + // node.setNodeScaleX(CAMERA_SCALE_X); + // node.setNodeScaleY(CAMERA_SCALE_Y); } fn onDraw(node: opaque) { @@ -20,8 +20,8 @@ fn onDraw(node: opaque) { var height: int const = node.getNodeRectH(); node.drawNode( - floor(posX * scaleX) + globalCameraX, - floor(posY * scaleY) + globalCameraY, + floor(posX * scaleX), + floor(posY * scaleY), floor(width * scaleX), floor(height * scaleY) ); diff --git a/assets/scripts/tilemap/renderer.toy b/assets/scripts/tilemap/renderer.toy index f84a051..f9e3f26 100644 --- a/assets/scripts/tilemap/renderer.toy +++ b/assets/scripts/tilemap/renderer.toy @@ -2,6 +2,24 @@ import standard; import engine; import node; + +//constants for generating maps +var TILE_PIXEL_WIDTH: int const = 16; +var TILE_PIXEL_HEIGHT: int const = 16; + +var ROOM_MIN_WIDTH: int const = 4; //minimum safe value 4 +var ROOM_MIN_HEIGHT: int const = 4; + +var ROOM_MAX_WIDTH: int const = 12; +var ROOM_MAX_HEIGHT: int const = 12; + +var CELL_WIDTH: int const = 16; //minimum safe value ROOM_MAX_* + 4 +var CELL_HEIGHT: int const = 16; + +var CELL_COUNT_X: int const = 3; +var CELL_COUNT_Y: int const = 3; + + var tilemap: [int] = null; //lifecycle functions