Commit Graph

253 Commits

Author SHA1 Message Date
40fff7729f add 'newKeys' field (list of key codes pressed in frame) to frame input type, so we can change key bindings at runtime later 2025-02-21 11:57:29 +00:00
603d6fa139 add key delay to options menu 2025-02-21 11:36:20 +00:00
c6fe819c0c thread time through update functions so it can be used 2025-02-21 08:58:45 +00:00
c81ca5dcf3 allow user to press up and down to select different options in options 2025-02-21 06:37:16 +00:00
6cd7edb5ab draw options screen when that is selected 2025-02-20 14:25:20 +00:00
6762a1b994 add non-configurable escape button to input type, to be used as a way to go backwards or exit menu 2025-02-20 13:32:37 +00:00
9feae2bb0f add function to make text vec to its own module so it can be reused across different modes 2025-02-20 06:13:33 +00:00
027c8be541 add functionality to move between start button/options button 2025-02-20 06:00:49 +00:00
6d39c17a11 when play button is focused on title screen and either attack or jump button is pressed, start level 2025-02-20 05:46:00 +00:00
f293e084f7 add ability to change colour of text 2025-02-19 20:06:12 +00:00
568b21343b add function which will allow placing text on centre of screen 2025-02-19 19:59:05 +00:00
bd145e6b74 make sure that drawn text is scaled + centered to middle of screen, if window size doesn't match expected ratio of 16:9 2025-02-19 05:37:04 +00:00
dab81e3904 begin function for drawing title screen 2025-02-19 04:07:27 +00:00
6ca2d379f7 bring in cozette-sml so we can draw text 2025-02-19 03:48:38 +00:00
25b2c41355 begin title screen by adding title screen type 2025-02-19 03:39:36 +00:00
6b4b637624 done adding LevelType.level_type as a field of GameType.game_type, and having main loop go through GameUpdate.game_type -> LevelUpdate.update 2025-02-18 13:48:17 +00:00
afe878c05d begin parameterising level so that it fits into larger type (with different modes like TITLE, LEVEL, SETTINGS, etc.) 2025-02-18 13:16:52 +00:00
b426ddbdd1 adjustment to player sprite, allowing the inside of the sprite to be a chosen colour 2025-02-18 12:48:55 +00:00
d3200745d0 allow player to have a different width/height that is not a perfect square, (now we have Constants.playerWidth and Constants.playerHeight, having deleted the previous size in Constants.playerSize) 2025-02-18 12:31:22 +00:00
e62493ce56 change size of player/enemy from 35 to 32 (even number means we can resize better) 2025-02-18 11:09:07 +00:00
18495a0cca successfully parse controls from file (but todo: save controls imperative shell on load) 2025-02-17 03:48:31 +00:00
99669dd0b6 add function to convert string to CoreKey.key_code (for parsing/loading controls from files) 2025-02-17 01:39:41 +00:00
291ee2f7f2 differentiate 'upHeld' from 'jumpHeld' (we may want a different button for going up/down menu and a different button for jumping) 2025-02-16 13:51:52 +00:00
47bda26da5 begin coding functionality for remapping keys 2025-02-16 12:45:29 +00:00
0edeb65131 done implementing SHIELD_SLIME 2025-02-15 13:00:23 +00:00
66c60a490d begin adding shield slime enemy variant 2025-02-15 12:34:10 +00:00
190f11d7ef different colours for different enemies so they are easier to differentiate 2025-02-15 12:18:08 +00:00
491ad11c4c remove a bit of dead code from fcore/projectile.sml 2025-02-15 08:18:57 +00:00
e538caa6c6 add 'facing' field to enemy, and update that field when enemy starts moving in different direction (with regards to x_axis) 2025-02-15 08:13:36 +00:00
0b9bdeceff update positions of falling enemies per frame (and filter them out too) 2025-02-15 02:17:01 +00:00
219b37053b add functionality for falling enemies to turn into player projectiles when attacked 2025-02-15 02:02:48 +00:00
b8934e3add add function to generate quad tree from falling enemies 2025-02-15 01:52:19 +00:00
e758a5a13c refactor falling_enemy to be contained in FallingEnemyMap, instead of a plain vector 2025-02-15 01:42:29 +00:00
5412a71d30 add code to make enemy fall when attacked by projectile (assuming health is enough) 2025-02-14 18:18:46 +00:00
c75e7bc33b add attacked enemies who are defeated to player's list of defeated_enemies, allowing them to be shot as projectiles 2025-02-14 13:15:45 +00:00
b239dfa04d add functionality to have enemies tract to player's attack 2025-02-14 12:59:22 +00:00
50b57b9ef9 a little refactoring (Player.runPhysicsAndInput function now does just that, instead of also checking for collisions with enemy) 2025-02-14 11:19:24 +00:00
e00db5d8a3 make enemies move per loop (calling update EnemyMap by calling EnemyBehaviour) 2025-02-14 10:43:27 +00:00
46a1836ae2 additional refactoring, moving player type into its own directory 2025-02-14 10:13:03 +00:00
d1e23b5455 refactor platform and wall type declarations out into platform.sml and wall.sml 2025-02-14 09:26:07 +00:00
93aebe5fa1 a bit of refactoring with regards to enemy's structures and files 2025-02-14 09:06:32 +00:00
93aae6dc1f remove dead code 2025-02-14 08:46:28 +00:00
c5cea8dcb3 partial refactoring so we use EnemyMap.t for collection of enemies 2025-02-13 13:36:30 +00:00
265c8db88a implement EnemyMap functor (todo: migrate from 'enemy vector' type to 'EnemyMap.t' type) 2025-02-13 12:14:50 +00:00
f1521acec1 refactor file order in preparation for adding GapMap for enemy 2025-02-13 11:24:44 +00:00
4c8b404c09 add code so that bat also moves vertically (in addition to previous horizontal movement) when updating enemy state 2025-02-12 00:25:55 +00:00
1dc3116b77 add fields to enemy which are relevant to bat's state 2025-02-11 23:54:13 +00:00
3db27a4107 cut time which bat rests for in half 2025-02-11 19:40:08 +00:00
d0d93780fb initial implementation of bat's update function (todo: make bat oscillate up and down while it also moves in x axis, and also code bat's collisions with player, adding to falling list if necessary, or being filtered by player's attack) 2025-02-11 19:38:02 +00:00
3202c67f47 begin adding variant for STRAIGHT_BAT enemy 2025-02-11 18:05:44 +00:00