erläutert werden. ...">

Breakout auf Svelte entwickeln

Auf MDN gibt es ein Tutorial namens "2D Pure JavaScript Game" , in dem die Grundlagen der Verwendung des HTML5- Elements <canvas> erläutert werden.



In diesem Tutorial werden wir die Entwicklung dieses Spiels auf Svelte wiederholen.


1. Erstellen Sie eine Leinwand und zeichnen Sie darauf

Reines JavaScript - Svelte


In diesem Beispiel werden drei geometrische Formen angezeigt: ein Quadrat, ein Rechteck und ein Kreis.



Die Canvas-Variable wird definiert, nachdem die Komponente im DOM bereitgestellt wurde . Daher wird der gesamte Code in den onMount-Lifecycle- Handler eingefügt . Binden des Canvas-Elements an die Canvas-Variable mithilfe dieser Bindung .


<script> import { onMount } from 'svelte'; let canvas; onMount(() => { const ctx = canvas.getContext('2d'); ctx.beginPath(); ctx.rect(20, 40, 50, 50); ctx.fillStyle = "#FF0000"; ctx.fill(); ctx.closePath(); ctx.beginPath(); ctx.arc(240, 160, 20, 0, Math.PI*2, false); ctx.fillStyle = "green"; ctx.fill(); ctx.closePath(); ctx.beginPath(); ctx.rect(160, 10, 100, 40); ctx.strokeStyle = "rgba(0, 0, 255, 0.5)"; ctx.stroke(); ctx.closePath(); }); </script> <canvas bind:this={canvas} width={480} height={320} ></canvas> <style> canvas { background: #eee; } </style> 

Außerdem übertragen wir einfach den gesamten Code ohne Änderungen an der Funktion onMount (). Kommentare werden nur bezüglich der Verwendung von Svelte gegeben.


2. Bewegen Sie den Ball

Reines JavaScript - Svelte


3. Von der Wand abprallen

Reines JavaScript - Svelte


4. Schlägersteuerung mit Schlüsseln

Reines JavaScript - Svelte
Ein spezielles <svelte: window> -Element wurde verwendet, um Ereignisse über die Tastatur abzuhören. Tastaturereignishandler und die darin verwendeten Variablen werden außerhalb der Funktion onMount () hinzugefügt.


5. Das Ende des Spiels

Reines JavaScript - Svelte


6. Bausteine

Reines JavaScript - Svelte


7. Kollisionserkennung

Reines JavaScript - Svelte


8. Erzielen und gewinnen

Reines JavaScript - Svelte


9. Maussteuerung

Reines JavaScript - Svelte
Ein Maus-Ereignishandler wurde auch außerhalb der onMount-Funktion hinzugefügt.


10. Schlussfolgerung

Reines JavaScript - Svelte


Wie wir sehen können, wurde fast der gesamte Code unverändert in die Anwendung auf Svelte portiert. Spiele schreiben normalerweise nicht in reinem JS, sondern verwenden vorgefertigte HTML5-Frameworks. Zum Beispiel das gleiche Spiel, das auf dem Phaser- Framework erstellt wurde. Sie können Experimente mit WebGl auf Svelte https://github.com/sveltejs/gl und Ideen auf svelte-gl https://github.com/Rich-Harris/svelte-gl sehen .


GitHub-Repository

https://github.com/nomhoi/svelte-breakout-game


Installieren des Spiels auf dem lokalen Computer:


 git clone git@github.com:nomhoi/svelte-breakout-game.git cd svelte-breakout-game npm install npm run dev 

Wir starten das Spiel in einem Browser unter der Adresse: http: // localhost: 5000 / .

Source: https://habr.com/ru/post/de458142/


All Articles