M0: skelett, byggkedja och dokumentation för JP Subway Pussel
- Go 1.27 + Ebitengine v2.10, intern upplösning 320x180 med heltalsskalning - internal/res (resursuppslag), internal/rng (seedad slump), internal/level (banformat, validering, BFS-lösbarhet) med tester; internal/archtest kontrollerar att bara presentationslagret beror på Ebitengine - tools/build: debug -> build/debug/, release -> build/release/<os>-<arch>/ med resources/ bredvid binären; Windows korsbyggs utan C-verktyg - VS Code tasks (build/test/release) och launch (dlv) - Första banan 001-flygplatsen, sv/en-texter, skyltordbok, placeholder-sprite - doc/: spelbeskrivning (renskriven), mål och tester, roadmap med teknikval (M0–M12), plan.md; README med bygg- och beroendeinformation Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
42
cmd/jp-subway-pussel/main.go
Normal file
42
cmd/jp-subway-pussel/main.go
Normal file
@@ -0,0 +1,42 @@
|
||||
// jp-subway-pussel – pixel art-pussel om att hitta rätt tåg på japanska stationer.
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
|
||||
"github.com/hajimehoshi/ebiten/v2"
|
||||
|
||||
"gitea.brasse-pc.eu/brasse/jp-subway-pussel/internal/buildinfo"
|
||||
"gitea.brasse-pc.eu/brasse/jp-subway-pussel/internal/game"
|
||||
)
|
||||
|
||||
func main() {
|
||||
levelID := flag.String("level", "001-flygplatsen", "bana att starta (id = filnamn utan .json)")
|
||||
scale := flag.Int("scale", 4, "fönsterskala (intern upplösning 320x180 × skala)")
|
||||
smoke := flag.Int("smoke", 0, "avsluta automatiskt efter N bildrutor (smoke-test)")
|
||||
version := flag.Bool("version", false, "skriv ut version och avsluta")
|
||||
flag.Parse()
|
||||
|
||||
if *version {
|
||||
fmt.Printf("jp-subway-pussel %s (%s)\n", buildinfo.Version, buildinfo.Mode)
|
||||
return
|
||||
}
|
||||
|
||||
g, err := game.New(game.Options{LevelID: *levelID, SmokeFrames: *smoke})
|
||||
if err != nil {
|
||||
log.Fatalf("kunde inte starta: %v", err)
|
||||
}
|
||||
|
||||
ebiten.SetWindowSize(game.ScreenW**scale, game.ScreenH**scale)
|
||||
ebiten.SetWindowTitle("JP Subway Pussel")
|
||||
ebiten.SetWindowResizingMode(ebiten.WindowResizingModeEnabled)
|
||||
ebiten.SetVsyncEnabled(true)
|
||||
|
||||
if err := ebiten.RunGame(g); err != nil {
|
||||
log.Println(err)
|
||||
os.Exit(1)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user