package client import ( "github.com/chompy/roguelike_rpg/internal/util" "github.com/hajimehoshi/ebiten/v2" ) type Instance struct { Ctx *GameContext State StateManager } func (i *Instance) Update() error { return i.State.Update() } func (i *Instance) Draw(screen *ebiten.Image) { i.State.Draw(screen) } func (i *Instance) Layout(outsideWidth, outsideHeight int) (int, int) { return 640, 360 } func Start() error { assets, err := util.DefaultAssets() if err != nil { return err } ctx, err := NewGameContext(assets) if err != nil { return err } ebiten.SetWindowSize(1280, 720) ebiten.SetWindowTitle("ROGUELIKE RPG (WORKING TITLE)") ebiten.SetWindowResizingMode(ebiten.WindowResizingModeEnabled) inst := &Instance{ Ctx: ctx, } if err := inst.State.ChangeState(&TitleState{ctx: ctx}); err != nil { return err } return ebiten.RunGame(inst) }