package main import ( "log" "math/rand" "relay/game" "relay/gfx" "time" "github.com/faiface/pixel" "github.com/faiface/pixel/pixelgl" ) func run() error { cfg := pixelgl.WindowConfig{ Title: "Relay", Bounds: pixel.R(0, 0, 2048, 1024), VSync: true, } w, err := pixelgl.NewWindow(cfg) if err != nil { return err } rand.Seed(time.Now().UnixNano()) s := game.NewState() rs := gfx.RenderState{ Animating: true, Frames: 20, } sb, err := gfx.NewSpriteBank() if err != nil { return err } sOld := s turn := 1 for !w.Closed() && !s.GameOver { switch { case w.Pressed(pixelgl.KeyQ): return nil case rs.Animating: rs = gfx.Render(rs, sOld, s, w, *sb) if !rs.Animating { sOld = s } case w.Pressed(pixelgl.KeySpace) || true: log.Printf("TURN %d", turn) rs.Animating = true rs.Frame = 0 s = game.UpdateState(s, sOld) turn++ if s.GameOver { s = game.NewState() sOld = s turn = 1 } } w.Update() } return nil } func pixelRun() { if err := run(); err != nil { log.Fatal(err) } } func main() { pixelgl.Run(pixelRun) }