Commit Graph

279 Commits

Author SHA1 Message Date
9286c26231 add a couple of frames to walk animation, and change colour of walls back from white to black (changed to white temporarily so we can see walk animation isolated from any other objects) 2025-02-22 19:22:48 +00:00
bd49877cf7 add code for going through right-walk cycle in draw/vector code (for player) 2025-02-22 19:02:28 +00:00
4a41976009 add 'animTimer' to player type, to help decide which frame to show for player 2025-02-22 14:00:33 +00:00
bf40a2b6e6 create assets for player walking rightwards (but they are not implemented in code yet) 2025-02-22 13:44:01 +00:00
f8ed79c81f small improvement to player's sprite (and create subdirectory for player's sprites too, as I expect there will be quite a few) 2025-02-22 06:02:28 +00:00
aa2936499d improvements to player sprite 2025-02-22 05:44:41 +00:00
defaf6c820 add functionality for cancel button in options-update.sml 2025-02-22 05:16:17 +00:00
e9f52d5cda allow cycling in options menu (when pressing down while on bottom button, it goes back to the top button, and whenh pressing up on the top button, it goes to the bottom button) 2025-02-22 05:07:20 +00:00
86aea3a147 trigger confirmation in title-update.sml only when attack is newly pressed (not when attack is held) 2025-02-22 04:53:51 +00:00
1bab4d89d7 done with saving updated keybindings, both saving to application's RAM memory and to disk 2025-02-21 20:31:26 +00:00
edb9b300c3 add function to convert CoreKey.key_code to string, as preparation for converting user key record to string, which itself is a prerequisite of saving controls configuration to file 2025-02-21 19:14:58 +00:00
9c82a624b6 a little refactoring 2025-02-21 18:57:28 +00:00
e6b0a5f37f add 'saveKeys' boolean to GameType.game_type, which should tell us to assign the new userKeys record to the InputState (which is implemented), and should also tell us to convert the keys to a string and save it to controls.config 2025-02-21 18:32:48 +00:00
e1fb4004dd add 'tempKeys' field to OptionsType.options_type, so that any key binding changes in the menu do not take immediate effect (requires pressing 'save button' in order for changes to be saved and take effect) 2025-02-21 18:18:39 +00:00
abcbc030e1 highlight different options in red when they are (focused andalso selected) 2025-02-21 14:53:26 +00:00
b2f58f1c9a record and act on selected keys in options (except for save button and cancel button which are not acted upon) 2025-02-21 14:46:54 +00:00
20338996b8 add back files with annotations to mlb (took them out before because smlfmt can't parse vector expressions, and also can't parse mlton's ffi syntax) 2025-02-21 13:37:41 +00:00
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
7ad521e444 add function to retrieve time from GLFW 2025-02-21 08:49:46 +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
6d028214d5 when game is first loaded, assign parsed controls (or at least default controls) to imperative shell's state 2025-02-17 03:53:04 +00:00
18495a0cca successfully parse controls from file (but todo: save controls imperative shell on load) 2025-02-17 03:48:31 +00:00
46c713a9b5 progress with controls-parsing logic 2025-02-17 03:13:45 +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
0df453f9c9 partially done coding key remapping functionality (what works: GLFW key code -> CoreKey.key_code, acting on CoreKey.key_code every frame; todo: load from config file on start up, have screen where we can remap keys, and save to config while when key mappings are changed) 2025-02-16 13:45:14 +00:00
f2f1eeab8e additional scaffolding of user's key mappings in imperative shell 2025-02-16 13:17:14 +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