polish some things

This commit is contained in:
2026-09-07 14:49:25 +02:00
parent a106a26277
commit 96db9ec1f9
5 changed files with 110 additions and 62 deletions
+28 -12
View File
@@ -9,8 +9,8 @@ import (
)
const (
WINDOW_WIDTH int = 1200
WINDOW_HEIGHT int = 800
WindowWidth int = 500
WindowHeight int = 500
)
type GameState int
@@ -19,6 +19,7 @@ const (
MainMenu GameState = iota
Playing
Dead
Won
)
type Game struct {
@@ -32,7 +33,7 @@ type Game struct {
}
func InitGame() *Game {
ebiten.SetWindowSize(WINDOW_WIDTH, WINDOW_HEIGHT)
ebiten.SetWindowSize(WindowWidth, WindowHeight)
ebiten.SetWindowTitle("Snake")
fontFile, err := os.Open("fonts/rockers_garage.ttf")
@@ -49,7 +50,7 @@ func InitGame() *Game {
font: font,
titleImg: initTitle(font),
state: MainMenu,
snake: InitSnake(WINDOW_WIDTH, WINDOW_HEIGHT),
snake: InitSnake(WindowWidth, WindowHeight),
menu: InitMenu(),
}
}
@@ -67,12 +68,21 @@ func (g *Game) Update() error {
g.snake.Move()
if g.snake.HasCollided() {
g.snake.isDead = true
g.state = Dead
// g.snake.isDead = true
}
if g.snake.isDead {
g.snake.Click(g)
if g.snake.score == g.snake.total {
g.state = Won
// g.snake.hasWon = true
}
// if g.snake.isDead || g.snake.hasWon {
// g.snake.Click(g)
// }
case Dead, Won:
g.snake.Click(g)
}
return nil
@@ -87,28 +97,34 @@ func (g *Game) Draw(screen *ebiten.Image) {
case Playing:
g.snake.Render(screen, g.font)
case Won:
g.snake.renderWinScreen(screen, g.font)
case Dead:
g.snake.renderDeadScreen(screen, g.font)
}
}
func (g *Game) Layout(outsideWith, outsideHeight int) (screenWidth, screenHeight int) {
return WINDOW_WIDTH, WINDOW_HEIGHT
return WindowWidth, WindowHeight
}
func initTitle(font *text.GoTextFaceSource) *ebiten.Image {
face := &text.GoTextFace{
Source: font,
Size: 60,
Size: 30,
}
titleW, _ := text.Measure("snake", face, 0)
fontOptions := &text.DrawOptions{}
fontOptions.GeoM.Translate(float64(WINDOW_WIDTH)/2-titleW/2, 10)
fontOptions.GeoM.Translate(float64(WindowWidth)/2-titleW/2, 10)
fontOptions.ColorScale.ScaleWithColor(color.RGBA{194, 169, 60, 1})
h := float64(WINDOW_HEIGHT) * 0.1
h := float64(WindowHeight) * 0.1
titleImg := ebiten.NewImage(WINDOW_WIDTH, int(h))
titleImg := ebiten.NewImage(WindowWidth, int(h))
text.Draw(titleImg, "snake", face, fontOptions)