//go:build js && wasm // +build js,wasm package main import ( "log" "github.com/hajimehoshi/ebiten/v2" "github.com/skip2/go-qrcode" ) func (g *Game) notifyPresentationStarted_Platform(roomID string) { // Im WASM: QR Code aus dem Game-Struct nehmen var qrData []byte // Wir generieren den QR Code hier nochmal als PNG Bytes oder wir speichern die Bytes im Game Struct // Der Einfachheit halber generieren wir ihn in Go und übergeben ihn. joinURL := "https://escape-from-school.de/?room=" + roomID pngData, _ := qrcode.Encode(joinURL, qrcode.Medium, 256) g.notifyPresentationStarted(roomID, pngData) } func (g *Game) updatePresentationState_Platform() { g.updatePresentationState() } func main() { log.Println("🚀 WASM Version startet...") // Spiel initialisieren game := NewGame() // JavaScript Bridge registrieren (für HTML-Menü Kommunikation) game.setupJavaScriptBridge() // Signal an JavaScript dass WASM vollständig geladen ist game.notifyWasmReady() // Spiel ohne eigenes Menü starten - HTML übernimmt das Menü // Das Spiel wartet im Hintergrund bis startGame() von JavaScript aufgerufen wird log.Println("⏳ Warte auf Start-Signal vom HTML-Menü...") // WICHTIG: Keine feste WindowSize auf WASM - Layout() regelt die Größe dynamisch ebiten.SetWindowTitle("Escape From Teacher") ebiten.SetTPS(60) ebiten.SetVsyncEnabled(true) if err := ebiten.RunGame(game); err != nil { log.Fatal(err) } }