Add WebAssembly support for assets and chunks, implement gameover screen rendering, and enhance server gameplay logic with dynamic speeds, team naming, and score components.
This commit is contained in:
@@ -27,8 +27,8 @@
|
||||
|
||||
<input type="text" id="playerName" placeholder="NAME (4 ZEICHEN)" maxlength="15" style="text-transform:uppercase;">
|
||||
|
||||
<button id="startBtn" onclick="startSoloGame()">SOLO STARTEN</button>
|
||||
<button id="coopBtn" onclick="showCoopMenu()">CO-OP SPIELEN</button>
|
||||
<button id="startBtn" onclick="startSoloGame()" disabled style="opacity: 0.5; cursor: not-allowed;">SOLO STARTEN</button>
|
||||
<button id="coopBtn" onclick="showCoopMenu()" disabled style="opacity: 0.5; cursor: not-allowed;">CO-OP SPIELEN</button>
|
||||
|
||||
<div class="info-box">
|
||||
<div class="info-title">SCHUL-NEWS</div>
|
||||
@@ -49,8 +49,14 @@
|
||||
|
||||
<div class="legal-bar">
|
||||
<button class="legal-btn" onclick="showLeaderboard()">🏆 TOP 10</button>
|
||||
<button class="legal-btn" onclick="showMyCodes()">🔑 MEINE CODES</button>
|
||||
<button class="legal-btn" onclick="showSettings()">⚙️ EINSTELLUNGEN</button>
|
||||
</div>
|
||||
|
||||
<div class="legal-bar" style="margin-top: 10px;">
|
||||
<button class="legal-btn" onclick="showImpressum()">📄 IMPRESSUM</button>
|
||||
<button class="legal-btn" onclick="showDatenschutz()">🔒 DATENSCHUTZ</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="start-right">
|
||||
@@ -67,13 +73,13 @@
|
||||
<div class="center-box">
|
||||
<h1>CO-OP MODUS</h1>
|
||||
|
||||
<button class="big-btn" onclick="createRoom()">RAUM ERSTELLEN</button>
|
||||
<button id="createRoomBtn" class="big-btn" onclick="createRoom()" disabled style="opacity: 0.5; cursor: not-allowed;">RAUM ERSTELLEN</button>
|
||||
|
||||
<div style="margin: 20px 0;">- ODER -</div>
|
||||
|
||||
<input type="text" id="joinRoomCode" placeholder="RAUM-CODE" maxlength="6" style="text-transform:uppercase;">
|
||||
<input type="text" id="teamNameJoin" placeholder="TEAM-NAME" maxlength="15">
|
||||
<button onclick="joinRoom()">RAUM BEITRETEN</button>
|
||||
<button id="joinRoomBtn" onclick="joinRoom()" disabled style="opacity: 0.5; cursor: not-allowed;">RAUM BEITRETEN</button>
|
||||
|
||||
<button class="back-btn" onclick="showMainMenu()">← ZURÜCK</button>
|
||||
</div>
|
||||
@@ -115,6 +121,112 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- MY CODES MENU -->
|
||||
<div id="myCodesMenu" class="overlay-screen hidden">
|
||||
<div class="center-box">
|
||||
<h1>🔑 MEINE HIGHSCORE-CODES</h1>
|
||||
|
||||
<div id="myCodesList" class="leaderboard-box" style="max-height: 500px;">
|
||||
Keine Codes gespeichert.
|
||||
</div>
|
||||
|
||||
<button class="back-btn" onclick="showMainMenu()">← ZURÜCK</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- IMPRESSUM MENU -->
|
||||
<div id="impressumMenu" class="overlay-screen hidden">
|
||||
<div class="center-box" style="max-width: 800px;">
|
||||
<h1>📄 IMPRESSUM & CREDITS</h1>
|
||||
|
||||
<div class="leaderboard-box" style="max-height: 500px; overflow-y: auto; text-align: left; font-family: sans-serif; font-size: 13px; line-height: 1.6; background: #333; color: #fff;">
|
||||
<h3 style="color: #fc0; margin-top: 0;">Projektleitung & Code:</h3>
|
||||
<p>Sebastian Unterschütz<br>
|
||||
Göltzschtalblick 16<br>
|
||||
08236 Ellefeld<br>
|
||||
<strong>Kontakt:</strong> sebastian@unterschuetz.de</p>
|
||||
|
||||
<h3 style="color: #fc0; margin-top: 20px;">🎵 Musik & Sound Design:</h3>
|
||||
<p>Max E.</p>
|
||||
|
||||
<h3 style="color: #fc0; margin-top: 20px;">💻 Quellcode:</h3>
|
||||
<p><a href="https://git.zb-server.de/ZB-Server/it232Abschied" target="_blank" style="color: #fc0;">git.zb-server.de/ZB-Server/it232Abschied</a></p>
|
||||
|
||||
<h3 style="color: #fc0; margin-top: 20px;">⚖️ Lizenzhinweis:</h3>
|
||||
<p style="background: rgba(255,204,0,0.1); padding: 10px; border-left: 3px solid #fc0;">
|
||||
Dies ist ein <strong>Schulprojekt</strong>.<br>
|
||||
Kommerzielle Nutzung und Veränderung des Quellcodes sind ausdrücklich untersagt.<br>
|
||||
Alle Rechte liegen bei den Urhebern.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<button class="back-btn" onclick="showMainMenu()">← ZURÜCK</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- DATENSCHUTZ MENU -->
|
||||
<div id="datenschutzMenu" class="overlay-screen hidden">
|
||||
<div class="center-box" style="max-width: 800px;">
|
||||
<h1>🔒 DATENSCHUTZERKLÄRUNG</h1>
|
||||
|
||||
<div class="leaderboard-box" style="max-height: 500px; overflow-y: auto; text-align: left; font-family: sans-serif; font-size: 13px; line-height: 1.6; background: #333; color: #fff;">
|
||||
<h3 style="color: #fc0; margin-top: 0;">1. Datenschutz auf einen Blick</h3>
|
||||
<p><strong>Allgemeine Hinweise:</strong> Die folgenden Hinweise geben einen einfachen Überblick darüber, was mit Ihren personenbezogenen Daten passiert, wenn Sie diese Website besuchen.</p>
|
||||
|
||||
<h3 style="color: #fc0; margin-top: 20px;">2. Verantwortlicher</h3>
|
||||
<p>Verantwortlich für die Datenverarbeitung auf dieser Website ist:<br>
|
||||
<strong>Sebastian Unterschütz</strong><br>
|
||||
Göltzschtalblick 16, 08236 Ellefeld<br>
|
||||
E-Mail: sebastian@unterschuetz.de<br>
|
||||
(Schulprojekt im Rahmen der IT232)</p>
|
||||
|
||||
<h3 style="color: #fc0; margin-top: 20px;">3. Hosting (Hetzner)</h3>
|
||||
<p>Wir hosten die Inhalte unserer Website bei folgendem Anbieter:<br>
|
||||
<strong>Hetzner Online GmbH</strong><br>
|
||||
Industriestr. 25, 91710 Gunzenhausen, Deutschland</p>
|
||||
<p><strong>Serverstandort:</strong> Deutschland (ausschließlich).<br>
|
||||
Wir haben mit dem Anbieter einen Vertrag zur Auftragsverarbeitung (AVV) geschlossen, der die Einhaltung der DSGVO gewährleistet.</p>
|
||||
|
||||
<h3 style="color: #fc0; margin-top: 20px;">4. Datenerfassung auf dieser Website</h3>
|
||||
|
||||
<h4 style="color: #fc0; margin-top: 15px;">Server-Log-Dateien</h4>
|
||||
<p>Der Provider der Seiten (Hetzner) erhebt und speichert automatisch Informationen in so genannten Server-Log-Dateien (Browser, OS, Referrer, Hostname, Uhrzeit, IP-Adresse).<br>
|
||||
<strong>Rechtsgrundlage:</strong> Art. 6 Abs. 1 lit. f DSGVO (Berechtigtes Interesse an technischer Fehlerfreiheit und Sicherheit). Die Daten werden nach spätestens 14 Tagen gelöscht.</p>
|
||||
|
||||
<h4 style="color: #fc0; margin-top: 15px;">Spielstände & Highscores</h4>
|
||||
<p>Wenn Sie einen Highscore eintragen, speichern wir:</p>
|
||||
<ul style="margin-left: 20px;">
|
||||
<li>Gewählter Name (Pseudonym empfohlen!)</li>
|
||||
<li>Punktestand und Zeitstempel</li>
|
||||
<li>Eindeutiger Player-Code (generiert)</li>
|
||||
<li>Proof-Code (kryptografischer Hash zur Verifizierung des Scores)</li>
|
||||
</ul>
|
||||
<p>Diese Daten dienen der Darstellung der Bestenliste und der Verifikation Ihrer Highscores.</p>
|
||||
|
||||
<h4 style="color: #fc0; margin-top: 15px;">Lokale Speicherung (LocalStorage)</h4>
|
||||
<p>Das Spiel speichert folgende Daten lokal in Ihrem Browser:</p>
|
||||
<ul style="margin-left: 20px;">
|
||||
<li>Einstellungen (Audio-Lautstärke)</li>
|
||||
<li>Ihr Spielername</li>
|
||||
<li>Ihr Player-Code</li>
|
||||
<li>Ihre erreichten Highscore-Codes mit Proof-Codes</li>
|
||||
<li>Lokaler Highscore-Rekord</li>
|
||||
</ul>
|
||||
<p>Diese Daten verbleiben <strong>ausschließlich auf Ihrem Gerät</strong> und werden nicht an uns übertragen. Sie können diese Daten jederzeit über die Browser-Einstellungen löschen.</p>
|
||||
|
||||
<p style="background: rgba(255,204,0,0.1); padding: 10px; border-left: 3px solid #fc0; margin-top: 15px;">
|
||||
<strong>Wichtig:</strong> Wir setzen <strong>keine Tracking-Cookies</strong> oder Analyse-Tools ein. Es erfolgt keine Weitergabe Ihrer Daten an Dritte (außer technisch notwendig über Hetzner als Hosting-Provider).
|
||||
</p>
|
||||
|
||||
<h3 style="color: #fc0; margin-top: 20px;">5. Ihre Rechte</h3>
|
||||
<p>Sie haben jederzeit das Recht auf Auskunft, Berichtigung und Löschung Ihrer Daten. Wenden Sie sich dazu an den Verantwortlichen im Impressum.<br>
|
||||
Um Ihre lokal gespeicherten Highscore-Codes zu löschen, nutzen Sie die Funktion im Menü <strong>"🔑 MEINE CODES"</strong> oder löschen Sie den Browser-LocalStorage.</p>
|
||||
</div>
|
||||
|
||||
<button class="back-btn" onclick="showMainMenu()">← ZURÜCK</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- LOBBY SCREEN (CO-OP WAITING ROOM) -->
|
||||
<div id="lobbyScreen" class="overlay-screen hidden">
|
||||
<div class="center-box">
|
||||
@@ -134,6 +246,12 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="lobbyTeamNameBox" class="hidden" style="margin: 20px 0; width: 100%; max-width: 400px;">
|
||||
<p style="font-size: 14px; color: #aaa; margin-bottom: 10px;">Team-Name (nur Host):</p>
|
||||
<input type="text" id="lobbyTeamName" placeholder="TEAM-NAME EINGEBEN" maxlength="15" style="text-transform:uppercase; width: 100%; padding: 10px; font-size: 16px;">
|
||||
<p id="currentTeamName" style="font-size: 12px; color: #ffcc00; margin-top: 5px;">Aktuell: <span id="teamNameDisplay">Nicht gesetzt</span></p>
|
||||
</div>
|
||||
|
||||
<div id="lobbyHostControls" class="hidden" style="margin: 20px 0;">
|
||||
<button class="big-btn" onclick="startGameFromLobby()" style="background: #00cc00;">SPIEL STARTEN</button>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user