added hud system, turned all observers into one central observer
This commit is contained in:
@@ -35,9 +35,9 @@ func NewGame(width, height, cellsize int, cfg *config.Config, startscene SceneNa
|
||||
Config: cfg,
|
||||
}
|
||||
|
||||
observers.NewPlayerObserver(&world)
|
||||
observers.NewParticleObserver(&world)
|
||||
observers.NewObstacleObserver(&world)
|
||||
// observers.NewPlayerObserver(&world)
|
||||
// observers.NewParticleObserver(&world)
|
||||
// observers.NewObstacleObserver(&world)
|
||||
game.Observer = observers.NewGameObserver(&world, cfg.Startlevel, width, height, cellsize)
|
||||
|
||||
game.Scenes[Welcome] = NewWelcomeScene(game)
|
||||
|
||||
@@ -1,12 +1,10 @@
|
||||
package game
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log/slog"
|
||||
"openquell/assets"
|
||||
|
||||
"github.com/hajimehoshi/ebiten/v2"
|
||||
"github.com/hajimehoshi/ebiten/v2/ebitenutil"
|
||||
)
|
||||
|
||||
type LevelScene struct {
|
||||
@@ -81,13 +79,4 @@ func (scene *LevelScene) Draw(screen *ebiten.Image) {
|
||||
|
||||
screen.Clear()
|
||||
scene.Levels[scene.CurrentLevel].Draw(screen)
|
||||
|
||||
// FIXME: put into hud_system
|
||||
op := &ebiten.DrawImageOptions{}
|
||||
screen.DrawImage(assets.Assets["hud"], op)
|
||||
ebitenutil.DebugPrintAt(screen, fmt.Sprintf(
|
||||
"FPS: %02.f TPS: %02.f",
|
||||
ebiten.ActualFPS(),
|
||||
ebiten.ActualTPS(),
|
||||
), 10, 10)
|
||||
}
|
||||
|
||||
@@ -52,6 +52,8 @@ func NewLevel(game *Game, cellsize int, plan *assets.RawLevel) *Level {
|
||||
|
||||
systemlist = append(systemlist, systems.NewDestroyableSystem(game.World, gridcontainer))
|
||||
|
||||
systemlist = append(systemlist, systems.NewHudSystem(game.World, plan))
|
||||
|
||||
mapslice, backupmap := LevelToSlice(game, plan, cellsize)
|
||||
|
||||
return &Level{
|
||||
@@ -105,8 +107,8 @@ func (level *Level) SetupGrid(game *Game) {
|
||||
level.World.Batch().RemoveEntities(selector)
|
||||
|
||||
// get rid of any players on PlayerObserver. FIXME: remove them in grid.NewGrid()?
|
||||
playerobserver := observers.GetPlayerObserver(level.World)
|
||||
playerobserver.RemoveEntities()
|
||||
observer := observers.GetGameObserver(level.World)
|
||||
observer.RemoveEntities()
|
||||
|
||||
// get rid of possibly manipulated map
|
||||
level.RestoreMap()
|
||||
|
||||
Reference in New Issue
Block a user