coding

Adicionando transição ao carregar uma fase no Phaser JS - Game Devlog #16

Escrito em 29 de dezembro de 2020 - 🕒 1 min. de leitura

Fala galera, estou aqui mais uma vez humildemente atrasado com um devlog devido ao natal e etc. Mas bom, deixa isso pra la e vamos ver logo o video de hoje.

Bom isso é bem simples de fazer, porém adiciona uma nivel de polimento bem legal no jogo. Primeiro eu criei uma game scene nova chamada StagePresentationScene, e nela, eu pego a variável stageName e a mostro no meio da tela por 1,5 segundo.

import { Scene } from 'phaser';
import { handleSceneEnd } from '../utils/scenes';

class StagePresentationScene extends Scene {
    constructor() {
        super('StagePresentationScene');
    }

    init(data) {
        this.initData = data;
    }

    create() {
        this.add.text(
            this.cameras.main.width / 2,
            80,
            this.initData.stageName
        ).setDepth(50).setOrigin(0.5, 0.5);

        this.time.delayedCall(
            1500,
            () => handleSceneEnd(this, 'GameScene', this.initData)
        );
    }
}

export default StagePresentationScene;

Eu consigo acessar o atributo stageName do Tiled com uma simples função de filter.

// stageNameProperty will be an object with a property value in it
const stageNameProperty = stageJson?.properties?.find(
    (property) => property.name === STAGE_NAME
);

E apesar de ser bem simples de fazer, isso deixa o jogo bem mais bonitinho.

Transição para fase

E por hoje é isso. Não esqueça de adicionar a propriedade stageName nas propriedades de mapa no Tiled. Vejo vocês semana que vem!

Tags:


Publicar um comentário

Comentários

Nenhum comentário.