Commit Graph

36 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
c6fe819c0c thread time through update functions so it can be used 2025-02-21 08:58:45 +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
dab81e3904 begin function for drawing title screen 2025-02-19 04:07:27 +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
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
93aebe5fa1 a bit of refactoring with regards to enemy's structures and files 2025-02-14 09:06:32 +00:00
c5cea8dcb3 partial refactoring so we use EnemyMap.t for collection of enemies 2025-02-13 13:36:30 +00:00
26870816db add code so that enemy gains a new projectile when attacking falling enemies, and also draw the falling enemies 2025-02-08 10:48:34 +00:00
1be44335cb add asset for ChainEdge (attack) 2025-02-07 13:42:38 +00:00
8498eacde2 a little bit of refactoring 2025-01-11 21:58:34 +00:00
2433797caf progress drawing projectiles 2025-01-09 11:52:39 +00:00
097d1502ad have pellets fly around player when player has attacked enemy 2025-01-01 14:17:42 +00:00
f199da790d add ability to charge for attack 2024-12-31 10:04:40 +00:00
5f437ae76d draw basic field over player when player is attacking 2024-12-28 04:06:27 +00:00
fccbb15f15 add shader strings which will allow us to make an xyrgba shader in OpenGL 2024-12-27 20:48:36 +00:00
e2b89af6ac refactor player.sml for easier extensibility when fields are added to player type (we accept a list of values to change, instead of destructuring the player.sml values on each function call) 2024-12-22 05:40:33 +00:00
aeb3756e5b change arrow keys (left, down, right) to letter keys (s, d, f) and arrow up to letter key 'k', because I think it is more comfortable 2024-12-20 16:51:21 +00:00
05cc1d3a46 begin coding enemy 2024-12-19 03:08:26 +00:00
07782c7d65 add code to: (1) draw platform (shell.sml), (2) fix wall collision detection regression and platform collision detection bug (I was meant to pass one y parameter and one x parameter to the QuadTree for querying, but accidentally sent the y coordinate twice), (3) perform necessary state transitions that allow to drop from platform when pressing down on a platform, and (4) make sure player does not stick to platform if they jump to platform from below 2024-12-18 03:30:21 +00:00
20c4060124 progress in handling variable window width/height (mostly only in imperative shell though) 2024-12-16 00:58:59 +00:00
cc7f30f718 add GameType.game_type which stores player and wall types, add GameUpdate.update function which takes a game type and returns a new game type, and refactor player/wall files, and gl-draw file, in light of these changes 2024-12-15 09:10:19 +00:00
1901043535 add functionality to move player by using arrow keys 2024-12-14 07:59:43 +00:00
9144c97fba get player to react to wall quad tree 2024-12-13 22:48:34 +00:00
9d42e14b2f add basic imperative shell 2024-12-10 19:48:07 +00:00