|
|
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 |
|
|
|
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 |
|
|
|
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 |
|