2024-02-06 15:26:20 +01:00
|
|
|
## Levels:
|
|
|
|
|
|
2024-03-01 14:08:35 +01:00
|
|
|
- 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.
|
|
|
|
|
|
2024-03-18 19:34:57 +01:00
|
|
|
- Turn menu button in hud_system (events in level_scene!) into ebitenui button
|
|
|
|
|
|
2024-03-21 19:04:47 +01:00
|
|
|
- Obstacle don't stop at collectibles
|
2024-03-16 18:50:24 +01:00
|
|
|
|
2024-03-21 19:04:47 +01:00
|
|
|
- Player can collect collectible hidden under obstacle (should be
|
|
|
|
|
fixed when above is fixed)
|
2024-03-22 19:02:52 +01:00
|
|
|
|
2024-04-04 18:45:29 +02:00
|
|
|
- Add player idle animation
|
|
|
|
|
|
|
|
|
|
- Add player collision animation
|
|
|
|
|
|
|
|
|
|
- Create pixel art ui elements (button, list things) and ui borders/backgrounds
|
|
|
|
|
|
2024-04-06 19:07:50 +02:00
|
|
|
- Modify font and font color matching the palette
|
|
|
|
|
|
2024-04-04 18:45:29 +02:00
|
|
|
- Replace HUD with pixel art variant
|
|
|
|
|
|
2024-04-08 14:51:16 +02:00
|
|
|
- On game start respond to any key (ebitengine-input has an anykey func)
|
2024-04-04 18:45:29 +02:00
|
|
|
|
|
|
|
|
- Switch to use https://github.com/quasilyte/ebitengine-input
|
|
|
|
|
|
|
|
|
|
- Add drag support: point and hold on the player, move cursor in some
|
|
|
|
|
direction and let the player start moving on release. Respond to
|
|
|
|
|
mouse and touch pad. See ~/tmp/ebiten/examples/drag/.
|
|
|
|
|
|
|
|
|
|
- Add options scene (mouse, player speed, sound options etc)
|
|
|
|
|
|
|
|
|
|
- Add save to disk feature including settings and player
|
|
|
|
|
accomplishements (FIXME: find the lib, asked in Discord)
|
2024-03-28 19:41:20 +01:00
|
|
|
|
2024-04-08 14:51:16 +02:00
|
|
|
- Rework sprites (again!) to match stellar background: maybe more
|
|
|
|
|
technical tiles and items? Like some robotic setup?
|
|
|
|
|
|
|
|
|
|
- Fix collision snapin: sometimes, when an entity moves to the right
|
|
|
|
|
or south (NOT left or north!) it snaps in visibly, so a short wobble
|
|
|
|
|
can be seen.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-03-01 10:55:14 +01:00
|
|
|
## Collider Rework [abandoned: see branch collider-system, fails]
|
2024-02-25 14:05:44 +01:00
|
|
|
|
|
|
|
|
- do not use the map anymore for collision detection
|
2024-02-26 14:43:03 +01:00
|
|
|
- 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!
|
2024-04-12 15:08:40 +02:00
|
|
|
|
|
|
|
|
## Just in case stuff
|
|
|
|
|
|
|
|
|
|
- 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)
|