Commit Graph

77 Commits

Author SHA1 Message Date
aaaa79cdc0 bring over attack projectile frames 2025-08-29 01:00:08 +01:00
25293876ed begin portin attack 2025-08-29 00:16:58 +01:00
ee5ccf77a0 update/port over right-walking frames 2025-08-28 23:08:30 +01:00
f3cb7b7546 port over left-walking frames/sprites 2025-08-28 23:02:03 +01:00
69992b5a8d convert whip-attack sprites to new dotscape format 2025-08-09 14:22:04 +01:00
54a4ed6d64 code box locations of right frames for whip attack 2025-02-28 13:18:42 +00:00
321200139b draw animation frames for whip attack 2025-02-28 12:03:23 +00:00
b697eaf8e0 add sprites for when player jumps while facing left, and add code to handle this case 2025-02-24 12:43:08 +00:00
0353c47f27 add jumping/falling sprites when player is facing right (todo: add sprites mirrored to face left) 2025-02-23 13:47:41 +00:00
4c853c1843 add animation for player walking leftwards 2025-02-23 07:43:23 +00:00
cc01ee7ec9 remove player-walk-right-10 and player-walk-right-11 from walk cycle animation (looks better without those frames) 2025-02-23 07:30:44 +00:00
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
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
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
6cd7edb5ab draw options screen when that is selected 2025-02-20 14:25:20 +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
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
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
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
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
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
e758a5a13c refactor falling_enemy to be contained in FallingEnemyMap, instead of a plain vector 2025-02-15 01:42:29 +00:00
b239dfa04d add functionality to have enemies tract to player's attack 2025-02-14 12:59:22 +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
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
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
51401231e1 update state of falling enemies per loop 2025-02-08 09:49:32 +00:00
1c105193e2 extract a couple of collision functions to a separate module for reuse 2025-02-08 08:39:04 +00:00
23cf480dad reimplement enemy-filter loop (now enemy's reaction, and decision to possibly filter, is fully under enemy's control - physics, damage reaction, whether to filter or update enemy's state, etc.) 2025-02-08 01:05:39 +00:00
1be44335cb add asset for ChainEdge (attack) 2025-02-07 13:42:38 +00:00
e1e20230d6 rip out player-enemy.sml and let player react to enemy collisions independently of enemy reaction to player 2025-02-06 17:37:48 +00:00
e1e1228983 delete pointer quad tree because it is twice as slow to construct as the vector-based implementation 2025-02-01 10:11:32 +00:00
bf3f0b3927 done implementing pointer quad tree (next: benchmark the two) 2025-02-01 09:54:35 +00:00
28380957b3 start implementing new quad tree that only uses pointers (just to test performance between vector-using implementation and only-pointer-using implementation) 2025-02-01 09:44:22 +00:00
9e9675aaab decrease memory consumption of quad tree by refraining from storing bounding box metadata (except for the global root which stores the width and height) 2025-02-01 01:03:57 +00:00
e23e2f0997 precompute graph to be used for dijkstra's algorithm, resulting in CPU usage that never exceed 7/home/humza/Downloads/sml/oh-my-stars/fcore/path-finding.sml with 5 enemies and eliminating lag 2025-01-31 04:32:53 +00:00
a24ada0f37 implement code for precomputing reachable platforms so it can be reused (but haven't modified implementation of Dijkstra's algorithm to use it, and haven't added it to game type yet) 2025-01-31 03:46:28 +00:00
bbb957f016 get path-finding.sml to use function in build-graph.sml to find reachable platforms, and remove now-dead code from path-finding.sml 2025-01-30 13:06:32 +00:00