- fixed bumpedge test for obstacles - fixed obstacle crash when going to the south or east - added wasm builder
55 lines
2.0 KiB
Markdown
55 lines
2.0 KiB
Markdown
## Levels:
|
|
|
|
- ignore comments in lvl files
|
|
|
|
- Grid Observer:
|
|
https://github.com/mlange-42/arche/issues/374
|
|
|
|
- Add shaders for animation (player destruction etc)
|
|
|
|
- Start New game starts with last played level, better add a Resume
|
|
Game menu item for this and use Start New always for level 1.
|
|
|
|
- for finding caller:
|
|
pc := make([]uintptr, 10)
|
|
n := runtime.Callers(0, pc)
|
|
pc = pc[:n]
|
|
fs := runtime.CallersFrames(pc)
|
|
source, _ := fs.Next()
|
|
source, _ = fs.Next()
|
|
source, _ = fs.Next()
|
|
|
|
slog.Debug("get observer", "minmoves", observer.LevelScore,
|
|
"file", source.File, "line", source.Line)
|
|
|
|
- Turn menu button in hud_system (events in level_scene!) into ebitenui button
|
|
|
|
- On level loose, do not offer "next level"
|
|
|
|
- Moving obstacles don't kill the player when they hit him, they just stop there.
|
|
|
|
- use grid/collider.CheckGridCollision() for players AND
|
|
obstacles. Currenty if I use it with obstacles, the don't move
|
|
anymore when a player bumps into it, for whatever strange reasons.
|
|
Maybe add a func argument to it so that the function can respond to
|
|
the event as the entity wishes.
|
|
|
|
## Collider Rework [abandoned: see branch collider-system, fails]
|
|
|
|
- do not use the map anymore for collision detection
|
|
- central collision_system
|
|
- add Collider component with callback funcs to call on certain events
|
|
- callback types:
|
|
- rect intersect (== future collision)
|
|
- collision resolve (set new position)
|
|
- pass over foreign rect (to e.g. change sprite while flying over sprite)
|
|
- pass over done (switch sprite)
|
|
- check for all moving objects against non-moving ones like moving
|
|
obstacle, player, bullet, laser
|
|
- check if executing callbacks within query loop is allowed
|
|
- callback function needs to be able to modify other components, so
|
|
possibly use observers for them, e.g.:
|
|
Collider.IntersectResolve => func(newpos) {player.pos = newpos; player.vel = stop}
|
|
- in the end it must be possible to add new entities without the need
|
|
to write a collision check for them, but have collision detection anyway!
|