Os métodos Preload, Create e Update
Agora vamos olhar para as nossas scenes (cenas), que vão guardar o código do nosso jogo.
Se você rolar a página, vai ver que cada cena tem um constructor (porque ela é uma classe) e também três métodos importantes: preload(), create() e update().
Na Scene 2, existem também várias funções auxiliares, mas hoje vamos focar nesses três métodos, porque eles são essenciais para entender o Phaser.
Do jeito que configuramos as cenas:
preload()ecreate()estão na Scene 1create()eupdate()estão na Scene 2
Essas três funções são as ferramentas principais de qualquer jogo feito com Phaser.
Preload()
Vamos começar pelo preload().
Esse método carrega coisas para dentro do nosso jogo: imagens, variáveis e praticamente qualquer outra coisa que você queira usar.
Mas atenção: as coisas carregadas no preload() ainda não aparecem nem funcionam no jogo até você usar elas depois.
Você pode imaginar o preload() como um depósito onde colocamos tudo o que o jogo vai precisar, antes mesmo dele começar.
A maioria dos elementos precisa estar no preload() antes de serem usados no resto do jogo.
Create()
O create() é bem direto: ele roda uma única vez no começo do jogo.
Aqui colocamos no jogo todas as coisas que carregamos no preload() e também criamos objetos como animações, detectores de colisão, textos, grupos e muito mais.
Update()
Por último, temos o update().
Enquanto preload() e create() rodam só no começo do jogo, o update() roda o tempo todo.
Quando você joga videogame, talvez já tenha visto o termo FPS.
Isso significa “frames por segundo” – ou seja, quantas vezes uma nova imagem (frame) aparece na tela por segundo.
Cada frame é basicamente uma chamada para o método update().
O Phaser normalmente roda a 60 FPS, o que quer dizer que o update() é chamado 60 vezes por segundo!
O update() serve para várias coisas:
- Movimento: se pedirmos para um objeto se mover um pouquinho dentro do
update(), o jogo vai mostrar um movimento suave, porque o método é chamado tão rápido que a gente não percebe as pausas. - Verificação constante: podemos usar
update()para ficar checando se algo aconteceu. Por exemplo, se quisermos que o jogador possa atirar quando a barra de espaço for apertada, podemos colocar umifnoupdate()para verificar isso o tempo todo.