HTML5. Neste tutorial, repetiremo...">

Desenvolvendo Breakout no Svelte

No MDN, existe um tutorial chamado "Jogo 2D JavaScript puro" que explora o básico do uso do elemento <canvas> HTML5.



Neste tutorial, repetiremos o desenvolvimento deste jogo no Svelte.


1. Criando uma tela e desenhando nela

JavaScript puro - Svelte


Neste exemplo, exibimos três formas geométricas: um quadrado, um retângulo e um círculo.



A variável canvas será definida após a montagem do componente no DOM, portanto, colocaremos todo o código no manipulador do ciclo de vida onMount . Vinculando o elemento canvas à variável canvas usando a ligação this .


<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> 

Além disso, simplesmente transferimos todo o código sem alterações para a função onMount (). Os comentários são dados apenas sobre o uso do Svelte.


2. Mova a bola

JavaScript puro - Svelte


3. Quicar na parede

JavaScript puro - Svelte


4. Controle de raquete com chaves

JavaScript puro - Svelte
Um elemento especial <svelte: window> foi usado para escutar eventos do teclado. Os manipuladores de eventos do teclado e as variáveis ​​usadas neles são adicionados fora da função onMount ().


5. O fim do jogo

JavaScript puro - Svelte


6. Tijolos de construção

JavaScript puro - Svelte


7. Detecção de colisão

JavaScript puro - Svelte


8. Marque e ganhe

JavaScript puro - Svelte


9. Controle do Mouse

JavaScript puro - Svelte
Um manipulador de eventos do mouse também foi adicionado fora da função onMount.


10. Conclusão

JavaScript puro - Svelte


Como podemos ver, quase todo o código foi portado para o aplicativo no Svelte sem alterações. Os jogos geralmente não escrevem em JS puro, mas usam estruturas HTML5 prontas. Por exemplo, o mesmo jogo feito na estrutura da Phaser . Você pode ver experimentos com o WebGl no Svelte https://github.com/sveltejs/gl e idéias sobre o svelte-gl https://github.com/Rich-Harris/svelte-gl .


Repositório do GitHub

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


Instalando o jogo no computador local:


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

Iniciamos o jogo em um navegador no endereço: http: // localhost: 5000 / .

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


All Articles