45 lines
822 B
Go
45 lines
822 B
Go
package main
|
|
|
|
import (
|
|
"github.com/soer/football/internal/game"
|
|
"github.com/soer/football/internal/render"
|
|
"github.com/hajimehoshi/ebiten/v2"
|
|
"log"
|
|
)
|
|
|
|
type Game struct {
|
|
world *game.World
|
|
renderer *render.Renderer
|
|
}
|
|
|
|
func (g *Game) Update() error {
|
|
g.world.Update()
|
|
return nil
|
|
}
|
|
|
|
func (g *Game) Draw(screen *ebiten.Image) {
|
|
g.renderer.DrawWorld(screen, g.world)
|
|
}
|
|
|
|
func (g *Game) Layout(outsideWidth, outsideHeight int) (int, int) {
|
|
return 1280, 720
|
|
}
|
|
|
|
func main() {
|
|
ebiten.SetWindowSize(1280, 720)
|
|
ebiten.SetWindowTitle("AI Hockey Simulation")
|
|
|
|
g := &Game{
|
|
world: game.NewWorld(),
|
|
renderer: render.NewRenderer(),
|
|
}
|
|
|
|
// Give the puck some initial velocity to see it move
|
|
g.world.Puck.Velocity.X = 2
|
|
g.world.Puck.Velocity.Y = 1.5
|
|
|
|
if err := ebiten.RunGame(g); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|