Tower Blocks Game - ist ein faszinierendes Arcade-Spiel, in dem der Spieler einen Turm bauen muss, indem er Blöcke übereinander legt. Ziel ist es, die Blöcke so genau wie möglich zu platzieren, damit der Turm stabil bleibt.

In diesem Tutorial erstellen wir ein Tower Blocks Game mit HTML, CSS und JavaScript. Wir werden verwenden Three.js für 3D-Visualisierung und GSAP für flüssige Animationen. Das Spiel beinhaltet:
Animation von Blöcken, die sich bewegen und anhalten.
Änderung der Größe und Position der Blöcke in Abhängigkeit von der Genauigkeit der Platzierung.
Punktzahl und Spieloberfläche.
Spielbeschreibung
Tower Blocks Game - ist ein Spiel, in dem Sie einen Turm bauen müssen, indem Sie bewegliche Blöcke platzieren. Je genauer Sie die Blöcke platzieren, desto höher wird der Turm. Wenn ein Block über den vorherigen hinausgeht, wird ein Teil des Blocks abgeschnitten. Das Spiel endet, wenn die Blöcke den Turm vollständig verfehlen.
Besonderheiten:
Bequeme Steuerung (Klick oder Leerzeichen).
Bunte 3D-Grafik.
Allmählich komplizierter werdendes Gameplay.
Phasen der Spielentwicklung
1. Erstellen einer HTML-Struktur
Fügen Sie die Hauptelemente hinzu: Spielcontainer, Blöcke für die Benutzeroberfläche (Punktzahl, Anweisungen, Spielende-Bildschirm).
Verbinden Sie Stile und Skripte: Three.js, GSAPund die Haupt-JavaScript-Datei.
2. Styling mit CSS
Verwenden Sie Stile, um den Spielcontainer zu zentrieren.
Erstellen Sie Animationen für das Erscheinen von Benutzeroberflächenelementen.
Passen Sie die Anpassungsfähigkeit der Benutzeroberfläche für verschiedene Bildschirme an.
3. Spiellogik in JavaScript
Klasse Bühne: Szenen-, Kamera- und Beleuchtungseinstellungen.
Block-Klasse: Verwaltung einzelner Blöcke (Größe, Bewegung, Platzierung).
Klasse Spiel: Steuerung des Spielprozesses (Hinzufügen von Blöcken, Punktezählung, Spielstatus).
4. Umsetzung der Blockmechanik
Bewegung des Blocks entlang der Achse.
Bestimmung des Kontaktpunkts mit dem vorherigen Block.
Block zuschneiden, wenn er über die Grenzen hinausgeht.
5. Steuerung einstellen
Reagiere auf Tastendruck und Mausklicks, um Blöcke zu platzieren.
6. Punktezählung und Spielende
Erhöhen Sie die Punktzahl für jeden richtig platzierten Block.
Beenden Sie das Spiel, wenn der Block verfehlt wird.
7. Testen und Optimieren
Stellen Sie sicher, dass das Spiel auf allen Geräten und Bildschirmen funktioniert.
Überprüfen Sie, ob die Übergänge zwischen den Spielzuständen fließend sind.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
<title>Tower Blocks Game</title>
<link rel="stylesheet" href="style.css"> <!-- Подключение стилей -->
</head>
<body>
<div id="container">
<!-- Основная область игры -->
<div id="game"></div>
<!-- Счет игры -->
<div id="score">0</div>
<!-- Инструкции -->
<div id="instructions">Кликните, чтобы разместить блок</div>
<!-- Экран окончания игры -->
<div class="game-over">
<h2>Игра окончена</h2>
<p>Вы отлично справились, вы лучший.</p>
<p>Кликните, чтобы начать заново</p>
</div>
<!-- Экран готовности к началу игры -->
<div class="game-ready">
<div id="start-button">Начать</div>
</div>
</div>
<!-- Подключение скриптов -->
<script src="https:// codepen.io/steveg3003/pen/zBVakw.js "> </ script> <!- Bibliothek für Hilfsfunktionen ->
<script src="https:// cdnjs.cloudflare.com/ajax/libs/three.js/r83/three.min.js "> </ script> <!-- Three.js für die Arbeit mit 3D ->
<script src="https:// cdnjs.cloudflare.com/ajax/libs/gsap/latest/TweenMax.min.js"></script> <! -- GSAP für Animation -- >
<script src="script.js"></script> <!-- Основная логика игры -->
</body>
</html>
Was machen wir in diesem HTML?
Wir fügen die Spielstruktur hinzu:
Wir erstellen einen Container mit
id="container", der der Hauptbereich des Spiels sein wird.Im Inneren des Containers platzieren wir:
#game- Bereich zum Zeichnen von 3D-Grafiken mit Three.js.#score- Spielstand, der in Echtzeit aktualisiert wird.#instructions- ein Hinweis für den Spieler, der zu Beginn des Spiels angezeigt wird..game-over- Bildschirm, der angezeigt wird, wenn das Spiel beendet ist..game-ready- Bildschirm mit einer Schaltfläche zum Starten des Spiels.
Wir verbinden Stile:
Wir verwenden
<link>zum Verbinden der Dateistyle.css, die das Erscheinungsbild des Spiels festlegt und die Benutzeroberfläche formatiert.
Wir verbinden Bibliotheken und Skripte:
Three.js— Bibliothek zum Erstellen und Arbeiten mit 3D-Grafiken.GSAP— Bibliothek für flüssige Animation von Elementen.script.js- die Hauptdatei mit der Spiellogik.
Wir fügen Meta-Tags hinzu:
<meta charset="UTF-8">- Legt die UTF-8-Codierung fest, um den Text auf Russisch korrekt anzuzeigen.<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">- stellt die Anpassungsfähigkeit der Spieloberfläche auf mobilen Geräten sicher.
Interaktionsszenarien:
Verbundene Skripte implementieren die Spielmechanik:
#start-buttonbeginnt das Spiel.Die Interaktion mit
#instructionserfolgt zu Beginn des Spiels.Der Bildschirm
.game-overerscheint, wenn der Spieler einen Fehler macht.
Wir fügen CSS-Stile hinzu
Für das Styling von Tower Blocks Game verwenden wir CSS, um eine angenehme und benutzerfreundliche Oberfläche zu erstellen, die Anpassungsfähigkeit und Animationen unterstützt.
Grundelemente und ihre Stile
1. Grundeinstellungen
Wir deaktivieren die Standardabstände und das Scrollen, damit das Spiel den gesamten Bildschirm einnimmt:
html, body {
margin: 0;
overflow: hidden;
height: 100%;
width: 100%;
font-family: "Comfortaa", cursive;
}2. Spielcontainer
Der Container nimmt den gesamten Bildschirm ein und dient als Hauptbereich für das Spiel:
#container {
width: 100%;
height: 100%;
}3. Rechnung
Der Spielstand wird oben auf dem Bildschirm angezeigt, hat eine große Größe und eine flüssige Animation des Erscheinens:
#container #score {
position: absolute;
top: 20px;
width: 100%;
text-align: center;
font-size: 10vh;
color: #333344;
transition: transform 0.5s ease;
}4. Spielgrafik
Der Bereich #game dient zur Darstellung von 3D-Grafiken mit Three.js und nimmt den gesamten Bildschirm ein:
#container #game {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}5. Bildschirme zum Spielende und -beginn
Die Bildschirme .game-over und .game-ready erscheinen in der Mitte des Bildschirms mit einer Animation:
#container .game-over, #container .game-ready {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}Wo finde ich den vollständigen Code?
Der vollständige CSS-Code ist in der App verfügbar Kodik oder auf GitHub-Projekt. So können Sie das gesamte Styling studieren und gegebenenfalls das Erscheinungsbild an Ihre Bedürfnisse anpassen.
Beschreibung der Spiellogik von Tower Blocks Game (JavaScript)
JavaScript ist die Grundlage für die Umsetzung der gesamten Spiellogik von Tower Blocks Game. Es ist verantwortlich für die Steuerung der 3D-Szene, die Bewegung der Blöcke, die Punktezählung und die Interaktion mit dem Spieler.
JavaScript-Grundelemente und ihre Funktionalität
1. Erstellen einer 3D-Szene
Für die Arbeit mit 3D-Grafiken verwenden wir die Bibliothek Three.js. Mit der Klasse Stage werden eine Szene, eine Kamera und eine Beleuchtung erstellt:
class Stage {
constructor() {
this.renderer = new THREE.WebGLRenderer({ antialias: true });
this.scene = new THREE.Scene();
this.camera = new THREE.OrthographicCamera(...);
this.light = new THREE.DirectionalLight(0xffffff, 0.5);
this.scene.add(this.light);
}
}Was wir tun:
Wir stellen die Kamera für die orthographische Projektion ein (geeignet für Spiele mit "Draufsicht").
Wir fügen Beleuchtung hinzu, um visuelles Volumen zu schaffen.
2. Erstellen von Blöcken
Die Klasse Block steuert einzelne Blöcke, ihre Größe, Bewegung und Platzierung:
class Block {
constructor(previousBlock) {
this.dimension = { width: 10, height: 2, depth: 10 };
this.position = { x: 0, y: ..., z: 0 };
this.mesh = new THREE.Mesh(new THREE.BoxGeometry(...), new THREE.MeshToonMaterial(...));
}
tick() {
// Steuert die Bewegung des Blocks
this.position[this.workingPlane] += this.direction;
}
place() {
// Logik des Blockzuschnitts bei Nichtübereinstimmung mit dem vorherigen
}
}Was wir tun:
Wir legen die Größe und die Startpositionen der Blöcke fest.
Wir implementieren die Bewegung von Blöcken und deren Stopp beim Drücken.
3. Spielsteuerung
Die Klasse Game kombiniert Spiellogik, Zustandsverwaltung, Hinzufügen neuer Blöcke und Punktezählung:
class Game {
constructor() {
this.blocks = [];
this.stage = new Stage();
this.state = 'READY';
this.score = 0;
}
addBlock() {
// Fügt dem Turm einen neuen Block hinzu
}
placeBlock() {
// Platziert den aktuellen Block und prüft, ob das Spiel beendet ist
}
restartGame() {
// Beendet das Spiel nach Abschluss
}
}Was wir tun:
Wir verarbeiten den Status des Spiels: Start, Spiel, Ende, Neustart.
Wir verwalten das Hinzufügen neuer Blöcke und das Aktualisieren der Szene.
Wir zählen Punkte für erfolgreich platzierte Blöcke.
4. Interaktion mit dem Spieler
Das Spiel reagiert auf Benutzeraktionen: Drücken der Leertaste oder Klicken mit der Maus, um Blöcke zu platzieren:
document.addEventListener('click', () => game.onAction());
document.addEventListener('keydown', (e) => {
if (e.keyCode === 32) game.onAction(); // Leertaste drücken
});5. Animationen
Mit Hilfe der Bibliothek GSAP Wir implementieren eine gleichmäßige Kamerabewegung und Blockanimation:
TweenLite.to(this.camera.position, 0.3, { y: newY });
TweenLite.to(block.position, 1, { x: ... });Was wir tun:
Die Kamera bewegt sich sanft nach oben und folgt den Blöcken.
Blöcke, die nicht übereinstimmen, fliegen zur Seite und verschwinden.
Wo finde ich den vollständigen Code?
Der vollständige JavaScript-Code ist in der App verfügbar Kodik oder auf GitHub-Projekt. Sie können es genauer studieren und gegebenenfalls an Ihre Bedürfnisse anpassen.
Befund
Erstellen eines Spiels Tower Blocks Game - ist ein faszinierender Prozess, der die Arbeit mit 3D-Grafiken, Animationen und Spielmechaniken kombiniert. Wir haben uns die wichtigsten Punkte der Entwicklung angesehen: Szenenkonfiguration, Blockverwaltung, Implementierung von Interaktionen und Styling der Benutzeroberfläche.
Wo kann man spielen und lernen, wie man ein Spiel erstellt?
Spielen Sie Tower Blocks Game und Sie können den Code in der App im Detail studieren Kodik. Dies ist eine großartige Gelegenheit, nicht nur das Spiel zu genießen, sondern auch zu lernen, wie Sie Ihre eigenen Projekte entwickeln, indem Sie das Beispiel in der Praxis studieren. Der vollständige Quellcode ist auch verfügbar unter GitHub-Projekt, wo Sie es herunterladen und an Ihre Bedürfnisse anpassen können.
Versuchen Sie, selbst ein Spiel zu erstellen, experimentieren Sie mit den Einstellungen und verbessern Sie es - das ist die Magie des Programmierens! 🚀
