Salvando progresso do jogador com checkpoints no Phaser JS - Skate Platformer Game Devlog #12
Escrito em 19 de novembro de 2020 - 🕒 1 min. de leituraFala pessoal! No vídeo de hoje vou mostrar como eu fiz para criar um checkpoint para o herói no meu jogo de uma maneira bem fácil.
Bom, eu basicamente fiz tudo em duas etapas. Primeiro, defino um overlap entre o herói e meu objeto de checkpoint e, dentro da função de callback, salvo a posição atual do herói para ser usada posteriormente.
const checkpoint = new Checkpoint();
const overlap = this.physics.add.overlap(
this.player,
checkpoint,
(objectA, objectB) => {
checkpoint.setAnimation('save');
overlap?.destroy();
// save it to the browser local storage
localStorage.setItem('hero_checkpoint', JSON.stringify({
x: hero.x,
y: hero.y,
}));
});
E no final da minha função create
da minha scene, eu coloco o herói na nova posição salva de antes.
const heroCheckpoint = localStorage.getItem('hero_checkpoint');
if (heroCheckpoint) {
const position = JSON.parse(heroCheckpoint);
this.player.setX(position.x);
this.player.setY(position.y);
}
// always remove the key just in case
localStorage.removeItem('hero_checkpoint');
E é isso. Super simples, certo? Desculpe pelo devlog curto esta semana, mas eu tive um pequeno acidente na minha mão, como falei no vídeo, e me impossibilitou de programar por uns dias.
Essa semana, o novo Hyrule Warriors será lançado, então não posso prometer que farei novos devlogs também 😬 mas vou tentar!
Tags:
- programação
- jogos
- javascript
- phaser
- phaser 3
- game devlog
- gamedev
- skate platformer
- super ollie vs pebble corp
- webpack
- tiled
- hyrule warriors
Posts relacionados
Publicar um comentário
Comentários
Nenhum comentário.