fixed higher speed collisions, removed Speed comp, put into Velocity
This commit is contained in:
16
game/game.go
16
game/game.go
@@ -4,9 +4,11 @@ import (
|
||||
"fmt"
|
||||
"image"
|
||||
"log/slog"
|
||||
"openquell/config"
|
||||
"openquell/observers"
|
||||
|
||||
"github.com/hajimehoshi/ebiten/v2"
|
||||
"github.com/hajimehoshi/ebiten/v2/ebitenutil"
|
||||
"github.com/mlange-42/arche/ecs"
|
||||
)
|
||||
|
||||
@@ -18,9 +20,10 @@ type Game struct {
|
||||
CurrentScene SceneName
|
||||
Observer *observers.GameObserver
|
||||
Levels []*Level // needed to feed select_scene
|
||||
Config *config.Config
|
||||
}
|
||||
|
||||
func NewGame(width, height, cellsize, startlevel int, startscene SceneName) *Game {
|
||||
func NewGame(width, height, cellsize int, cfg *config.Config, startscene SceneName) *Game {
|
||||
world := ecs.NewWorld()
|
||||
|
||||
game := &Game{
|
||||
@@ -30,18 +33,19 @@ func NewGame(width, height, cellsize, startlevel int, startscene SceneName) *Gam
|
||||
ScreenHeight: height,
|
||||
Scenes: map[SceneName]Scene{},
|
||||
Cellsize: cellsize,
|
||||
Config: cfg,
|
||||
}
|
||||
|
||||
observers.NewPlayerObserver(&world)
|
||||
observers.NewParticleObserver(&world)
|
||||
observers.NewObstacleObserver(&world)
|
||||
game.Observer = observers.NewGameObserver(&world, startlevel, width, height, cellsize)
|
||||
game.Observer = observers.NewGameObserver(&world, cfg.Startlevel, width, height, cellsize)
|
||||
|
||||
game.Scenes[Welcome] = NewWelcomeScene(game)
|
||||
game.Scenes[Menu] = NewMenuScene(game)
|
||||
game.Scenes[About] = NewAboutScene(game)
|
||||
game.Scenes[Popup] = NewPopupScene(game)
|
||||
game.Scenes[Play] = NewLevelScene(game, startlevel)
|
||||
game.Scenes[Play] = NewLevelScene(game, cfg.Startlevel)
|
||||
game.Scenes[Select] = NewSelectScene(game)
|
||||
|
||||
game.CurrentScene = startscene
|
||||
@@ -115,7 +119,13 @@ func (game *Game) Update() error {
|
||||
}
|
||||
|
||||
func (game *Game) Draw(screen *ebiten.Image) {
|
||||
//slog.Debug("FPS", "fps", ebiten.ActualFPS())
|
||||
game.GetCurrentScene().Draw(screen)
|
||||
ebitenutil.DebugPrintAt(screen, fmt.Sprintf(
|
||||
"FPS: %02.f TPS: %02.f",
|
||||
ebiten.ActualFPS(),
|
||||
ebiten.ActualTPS(),
|
||||
), 0, 0)
|
||||
}
|
||||
|
||||
func (g *Game) Layout(newWidth, newHeight int) (int, int) {
|
||||
|
||||
Reference in New Issue
Block a user