Phaser Dicas
BasicGame.Game = function (game) {
// When a State is added to Phaser it automatically has the following properties set on it, even if they already exist:
this.game; // a reference to the currently running game (Phaser.Game)
this.add; // used to add sprites, text, groups, etc (Phaser.GameObjectFactory)
this.camera; // a reference to the game camera (Phaser.Camera)
this.cache; // the game cache (Phaser.Cache)
this.input; // the global input manager. You can access this.input.keyboard, this.input.mouse, as well from it. (Phaser.Input)
this.load; // for preloading assets (Phaser.Loader)
this.math; // lots of useful common math operations (Phaser.Math)
this.sound; // the sound manager - add a sound, play one, set-up markers, etc (Phaser.SoundManager)
this.stage; // the game stage (Phaser.Stage)
this.time; // the clock (Phaser.Time)
this.tweens; // the tween manager (Phaser.TweenManager)
this.state; // the state manager (Phaser.StateManager)
this.world; // the game world (Phaser.World)
this.particles; // the particle manager (Phaser.Particles)
this.physics; // the physics manager (Phaser.Physics)
this.rnd; // the repeatable random number generator (Phaser.RandomDataGenerator)
// You can use any of these from any function within this State.
// But do consider them as being 'reserved words', i.e. don't create a property for your own game called "world" or you'll over-write the world reference.
};
Com esta função podemos chamar
this.add ao invés de this.game.add
Usar
this.add.sprite(0, 0, 'einstein');
no lugar de:
this.game.add.sprite(0, 0, 'einstein');
A função update() atualiza a tela em torno de 60 vezes por segundo.
Implementar entradas pelo teclado no Phaser é algo simples. A função retorna as 4 teclas de setas:
this.cursors = this.input.keyboard.createCursorKeys();
Exemplo de uso:
this.player.body.velocity.x = 0;
this.player.body.velocity.y = 0;
if (this.cursors.left.isDown) {
this.player.body.velocity.x = -this.player.speed;
} else if (this.cursors.right.isDown) {
this.player.body.velocity.x = this.player.speed;
}
if (this.cursors.up.isDown) {
this.player.body.velocity.y = -this.player.speed;
} else if (this.cursors.down.isDown) {
this.player.body.velocity.y = this.player.speed;
}
Caso permitamos ao jogador apertar ao mesmo tempo as teclas para movimentos horizontais e verticais então poderemos ter movimentos em 8 sentidos ao invés de apenas 4. Teremos também movimentos nas diagonais e não somente na vertical e horizontal.
Alguns objetos funcionam melhor quando contidos em grupo, como é o caso de balas. Assim reduz o consumo de memória.
Outro bom uso de grupo é nas explosões.
Refatorar o código com os objetivos:
- Recomendação: Refactorar sempre que o código for duplicado 3 ou mais vezes.
- Tornar a manutenção mais simples
- Reduzir o consumo de memória
- Deixar o jogo mais rápido
- Quebrar trechos de código grandes em pequenas funções
- Reduzir hard-coded trechos e constantes numéricas fixas para isso criando constanes em um state que fica mais fácil de alterar.
- Usar também valores relativos às dimensões, como this.game.width, ao inves de 800 fica mais flexível
O Phaser assume que seus sprites são orientados para a direita.
Coordenadas do Canvas
O ponto (0, 0) fica no canto superior esquerdo, portanto
O X aumenta da esquerda para a direita
O Y aumenta de cima para baixo
Formatos de áudio suportados pelo Phaser:
- Ogg e MP4 dão a maior cobertura de navegadores
- Wav deve ser evitado por ser grande
- MP3 deve ser evitado por problemas de licensa
Publicação do Jogo
Um jogo com o Phaser pode ser hospedado em qualquer servidor com suporte ao HTML 5 com um servidor web.
Uma boa alternativa free é o GitHub, mas requer conhecimento do Git.
Hospedagem free no Neocities
Ele aceita drag and drop em sua administração.
http://neocities.org
Desvantagem: não suporta criação de pastas. Todos os arquivos devem ficar no raiz do seu site. Não aceita upload de .wav.
Comments fornecido por CComment