Commit Graph

136 Commits (b46097f735bf121f7aa4b7d6f49d7b7488d3c2a1)

Author SHA1 Message Date
En Yi ee65e3c974 Extend the render queue to tilemap
This is only applied to the main game
2024-12-21 16:53:47 +08:00
En Yi e24bb382f9 Update editor rendering function 2024-12-21 15:36:58 +08:00
En Yi 04d928c97f Add a rendering queue for sprite
Only applies for editor scene as a test
2024-12-21 14:37:18 +08:00
En Yi db8849a7de Add urchin particles and update menus 2024-10-05 20:22:16 +08:00
En Yi e52c9445c9 Fix crash when player finish a level
This happens because the player exit entity is removed without checking
with the tilemap, causing it to linger
2024-10-05 19:07:55 +08:00
En Yi 8efa3015ad Update urchin hitbox and bbox
This is so that wooden can be destroyed by urchin. Urchin can still be
crushed by a wooden crate though.
2024-09-30 22:47:27 +08:00
En Yi 2ee1e38094 Remove unneeded code 2024-09-26 23:02:27 +08:00
En Yi 9854654d61 Slightly resize UI for spawning urchin 2024-09-26 20:46:58 +08:00
En Yi ce0ca96c67 Allow value snapping for urchin spawn velocity
Also, update the UI
2024-09-24 22:30:17 +08:00
En Yi b275caf795 Add spawning urchin in editor 2024-09-23 21:55:06 +08:00
En Yi 4abe996640 Add urchin enemy
Changelog:
- Ctransform component now has a bounce coeffcient which determines
  velocity reflection on contact.
2024-09-08 23:05:12 +08:00
En Yi 41585f6938 Simplify edge velocity check
Internal Changelog:
- Use tile collision to determine which side has collided and perform
  the velocity zeroing, instead of separating out.
2024-09-02 21:58:11 +08:00
En Yi c8059300ac Fix freecam bug on game restart
Changelog:
- Lock player if freecam is active
2024-08-27 16:02:55 +08:00
En Yi 10d48c1d70 Allow optional inits for scene
Particle system and entity management are now optional during scene
init.
2024-08-24 14:42:11 +08:00
En Yi 03a4240c6d Simplify and unify level restarting
Changelog:
- Add function to clear all game entities
- This functions is called in both editor and main game
2024-08-24 00:25:33 +08:00
En Yi 2fe3faf08f Update exit rendering 2024-08-24 00:23:17 +08:00
En Yi f208964e7f Fix rendering for finishing the level 2024-08-20 14:03:59 +08:00
En Yi e37e89505a Experiment with timer-based transition 2024-08-19 14:24:22 +08:00
En Yi 019f39f84c Implement basic level state management
Internal Changelog:
- Remove spawn position for entity
    - Not used. If spawning is needed, use a spawning entity
- Put in state machine callback function
    - Player spawning system is part of callback function
    - Remove player spawning system
- Incorporate state transition in systems
2024-08-19 11:55:48 +08:00
En Yi f6f6d54ecf Put back the air meter
Render it on the game canvas layer
2024-08-17 20:37:20 +08:00
En Yi c20401c457 Rework free camera toggling behaviour for editor
Changelog:
- Reorder render layers
- Seperate out player related actions from others
- Add indication for free camera mode
2024-08-17 16:59:50 +08:00
En Yi acb1b7858c Add lookahead feature into main game 2024-08-17 14:59:17 +08:00
En Yi 90bbad09ae Add free-movement to camera in editor scene 2024-08-17 14:49:51 +08:00
En Yi 9fdb8296ff Add key to toggle player movement
This key will be used for looking ahead
2024-08-17 13:58:06 +08:00
En Yi e762f62f40 Decouple player dead and respawn system 2024-08-15 11:55:22 +08:00
En Yi 65b04523ce Update game rendering
Internal Changelog:
- Port editor scene rendering improvements
- Make game scene ~640x480 for testing
2024-08-12 16:06:36 +08:00
En Yi 5d1784dad8 Attempt to fix BG scrolling 2024-08-10 17:45:09 +08:00
En Yi 2c908ffd46 Update rendering for editor scene
Internal Changelog:
- Add background
- Update grid and bbox drawing
2024-08-10 17:21:10 +08:00
En Yi 4a54bfe84f Incorporate anchor point in player sprite info
Changelog:
- src anchorpoint is also an enum. The offset needs to be computed
  dynamically due to flip_x
- Re-add back the offset field.
- Add symbol parsing for anchor point.
2024-08-06 21:36:17 +08:00
En Yi 1215746e05 Add x-flipping for anchoring 2024-08-06 20:36:23 +08:00
En Yi 657110a66d Implement sprite rendering anchor 2024-08-05 21:50:01 +08:00
En Yi b158bee1e8 Remove unused ActionResult
There is only one focused scene at a time as part of the design
limitation. Thus, it is no longer needed
2024-07-01 20:48:48 +08:00
En Yi 0653cbd0a2 Continue plan data struct for scene management 2024-06-20 21:41:14 +08:00
En Yi 8765500606 Add button to toggle solid tilemap 2024-05-11 15:53:39 +08:00
En Yi 7b4af0b513 Add tilemap rendering from sprite
Internal Changelog:
- Add a mapping from connectivity to tile to render
- Add new field for static tilemap sprite
2024-05-09 21:07:15 +08:00
En Yi d7113d42fe Add neighbour solid counts
This is preparing for the tile sprites rework
2024-05-06 22:04:53 +08:00
En Yi 0f09a7b2bd Remove obsolete render function field 2024-05-04 20:40:15 +08:00
En Yi 251360ca3e Fix instructions not rendering correctly 2024-05-04 19:29:43 +08:00
En Yi 21e37a328e Update editor rendering to use texture dimensions 2024-05-04 19:25:47 +08:00
En Yi bef2ee2813 Expose initial window size to scene
This is so that each scene does not need to hardcode render layer size
2024-05-04 18:28:53 +08:00
En Yi 75d019aa34 Rework rendering to allow multi-layer render
Internal Changelog:
- A scene now has a maximum amount of render texture. It is to be
  rendered in order of the array by the engine.
- A scene now needs an explicit render system to draw onto the render
  textures. The scene will also init the number of render layers
  needed.
- The change is to allow more separate of concerns when it comes to
  rendering. A scene can also now compartmentalise the rendered items,
  which hopefully make understanding the code easier.
- Update all exisiting code to use the new render system.
2024-05-04 17:57:07 +08:00
En Yi 0d4089d9ce Tweak scene render function
Delegate BeginDrawing and EndDrawing to individual scenes
2024-05-01 19:56:10 +08:00
En Yi 754d380221 Integrate mouse action into input process 2024-04-25 21:46:53 +08:00
En Yi 0fb1fe27de Display time scaling in sandbox 2024-04-24 22:15:52 +08:00
En Yi 0a6e7b4ddc Add delta time handling
Internal Changelog:
- Major change: all engine that does counting uses delta time instead of
  frame counting
- Animation runs at 24 FPS
- Water fill is at a constant rate as well
- Particle update will need to be given delta time as well.
- Particle system is not updated to use float, so no delta time handling
  for the system in this commit
2024-04-23 22:44:52 +08:00
En Yi a2c061c5e8 Place position field into Entity
Position is so commonly used that placing it into Entity from the
CTransform components reduces the reference to CTransform.

Void Particle proved that it made development much easier.
2024-04-22 22:15:21 +08:00
En Yi 09da7e8700 Add sprite to tile and entity spawn in editor 2023-11-23 22:26:44 +08:00
En Yi 8a39f85c45 Change key to toggle grid 2023-11-23 21:53:36 +08:00
En Yi d5c6d05558 Add action to set spawn point 2023-11-23 20:52:51 +08:00
En Yi 9a9f77c7b2 Fix issue with web build
Changelog:
- Update SFX
- Draw air meter
2023-11-22 00:13:05 +08:00