Commit Graph

291 Commits

Author SHA1 Message Date
9e30beb7d2 remove some unnecessary destructuring 2024-12-22 18:25:26 +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
05ec1880d2 remove dead code (an '(r, g, b)' tuple) and an outdated comment (about a compiler error) from player.sml 2024-12-21 11:15:03 +00:00
c71dbb7fca add facing datatype to player record, which represents the last position the player is facing (player is facing left if they moved leftwards or colllided with an enemy who is to the left, and player is facing right if they move rightwards or player collides with enemy who is to the right) 2024-12-20 17:41:21 +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
1e2ebe066f slight improvement to attacked animation in player.sml 2024-12-20 08:17:33 +00:00
165abe32ba add player-flashing animation when player is attacked 2024-12-20 07:55:10 +00:00
aa1e71d3d8 remove accidental git log pasted in game-type.sml 2024-12-20 07:39:27 +00:00
71e62a101d add player_attacked datatype to player record, and refactor 2024-12-20 07:38:54 +00:00
58f552b38b add player_attacked datatype to player record, and refactor 2024-12-20 07:38:41 +00:00
fec4d996d9 fix bug. Bug was: if player jumps on platform while holding up, and walks off platform while still holding up, the player has the same 'y' coordinate, floating in the air when gravity should be applied. Fixed by applying gravity in the onJumpPressed function, when jumpPressed variable is true. 2024-12-19 08:10:34 +00:00
65ce098a71 have proper state transitions for recoiling; tested, and works correctly too 2024-12-19 07:53:31 +00:00
9ed32f38d2 separate RECOIL state to RECOIL_LEFT and RECOIL_RIGHT, telling us which direction player reccoils from 2024-12-19 04:09:03 +00:00
8dc5ad9359 add recoil state for player (next: enter recoil state when player touches enemy) 2024-12-19 03:58:37 +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
d0360df871 change platCollisions value to check for collisions in platformTree instead of wallTree 2024-12-18 00:18:24 +00:00
1501f5f556 add comment about what code is triggering a compiler error 2024-12-17 23:49:40 +00:00
3ce2a974ba I think functions to drop below platforms have been coded and work fine, but I can't manually test because of an exception during compilation. So save progress by pushing to GitHub for now. 2024-12-17 22:45:58 +00:00
8344138c55 add function to quad tree to get only bottom-side queries 2024-12-17 22:04:46 +00:00
ddd58fd534 add platform vector and platform quadtree to game type 2024-12-17 21:42:06 +00:00
507c1c331c scale player.sml in the same way that wall.sml is being scaled, and also: make 'x' and 'y' arguments to Block.lerp Real32.real values rather than int values (with calling code making the necessary changes) as the code was converting between int and real multiple times 2024-12-17 09:16:22 +00:00
18bd81134b done handling variable window width/height in wall.sml 2024-12-17 04:59:15 +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
1017bf1b7a cache 'jumpPressed' state inside player type. We use this boolean to check if the player has jumped before. If they have jumped before, then holding the up button does not cause another jump when falling down (unlike before this commit) 2024-12-14 21:05:51 +00:00
8b8d6f07bc change floatLimit to 3, which seems to be fine 2024-12-14 18:11:59 +00:00
df186308bb reduce floatLimit to 4, which feels better in the game 2024-12-14 18:07:12 +00:00
62a6a831ed add FLOATING case to player's y_axis type, so user hovers briefly after jumping, before gravity is applied (this is normal game physics) 2024-12-14 18:02:57 +00:00
cea269689e make it so that player will jump shorter distance if they only press up button for short period of time 2024-12-14 08:18:39 +00:00
34884b1b50 make sure gravity is applied when player walks off platform 2024-12-14 08:11:23 +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
fb2be7be73 add block.sml which just generates a block for OpenGL 2024-12-10 11:55:40 +00:00
a1b8aead30 complete function to get collision sides in quad tree 2024-12-10 08:42:36 +00:00
7dbacd4792 add function to return which side a collision occurs at 2024-12-09 07:05:21 +00:00
544460aec7 begin coding player 2024-12-09 04:37:40 +00:00
244640c1d6 add signature to quad-tree.sml, making it an opaque module 2024-12-09 00:23:00 +00:00
068f0277b9 add function to get list of collision object from quad tree 2024-12-08 23:38:50 +00:00
6f14edd528 code insert function for quad tree 2024-12-07 11:12:19 +00:00