Minilop Retroware

MPAGD Iniciantes · Parte 11 de 29

Vamos criar um jogo com o MPAGD, Parte 11: Coletáveis e o nosso primeiro código

22 de novembro de 2020

Vou criar um osso e o Stinky Dog vai tentar recolhê-los; de cada vez que o fizer, ganha alguns pontos. Para criar o osso, vamos usar o editor de blocos...

Captura de ecrã do tutorial

Desenha o teu bloco coletável e clica na caixa do tipo de bloco para percorrer os tipos disponíveis até chegares a COLLECTABLE

Em seguida, abre o editor de ecrãs e adiciona alguns blocos coletáveis ao teu ecrã

Captura de ecrã do tutorial

Agora compila e testa o teu jogo (File > Build )

Repara que o Stinky Dog agora apanha os ossos quando lhes toca.

Mas a pontuação não aumenta.

É aqui que a coisa se complica...chegou a altura de escrever algum código.

Abre o menu Events, no fundo há um evento chamado Collect Block, clica nele e o teu editor de texto deverá abrir-se, com apenas uma linha de código:

EVENT COLLECTBLOCK

Se não tiver, escreve-a e carrega na tecla ENTER (CARREGA SEMPRE NA TECLA ENTER NO FIM DE CADA LINHA DE CÓDIGO!)

Em seguida, adiciona a seguinte linha de código por baixo:

SCORE 100

e carrega na tecla Enter.

Agora, sempre que o Collect Block for chamado, vai somar 100 à pontuação.

Guarda o teu script do Collect Block (se estiveres a usar o Bloco de Notas, terás de o fechar)

Mas antes de o testarmos temos de escrever uma linha de código no evento Player que chame o evento Collect Block.

No menu Events seleciona Player. O script do jogador vai abrir agora no teu editor de texto. Deve ter cerca de 30 linhas de código.

No início do script, mas por baixo de Event Player, adiciona o comando:

GETBLOCKS

... e carrega na tecla Enter

O comando GETBLOCKS remove todos os blocos coletáveis com que o sprite atual esteja em contacto e chama o evento Collect Block por cada um que remove.

Como o colocámos no evento Player, isto significa que quando o Stinky Dog tocar no bloco coletável, este será removido e o evento Collect Block será chamado.

Guarda o ficheiro do evento do jogador e fecha-o.

Agora compila e testa o teu jogo.

Reparaste que a pontuação aumenta 100 por cada coletável apanhado?

Não.

Não funcionou.

Bem, na verdade funcionou. A tua pontuação subiu 100 por cada um. O problema é que a pontuação não é atualizada.

E para perceber porquê, vamos ter de ver outro script de evento.

No menu Events seleciona Game Initialisation

Deve ser algo parecido com isto:

EVENT GAMEINIT

LET LIVES = 3
AT 0 16
DISPLAY LIVES

AT 0 6
SHOWSCORE

AT 0 25
SHOWHIGH

O script Game Initialisation só é executado quando o jogo começa. Se o leres, é bastante óbvio o que faz:

Começa o jogo com três vidas

Na linha 0, coluna 16, mostra o número de vidas

Na linha 0, coluna 6, mostra a pontuação

Na linha 0, coluna 25, mostra a pontuação máxima

Portanto, neste momento a pontuação só é atualizada quando o jogo começa.

Vamos ter de adicionar o código SHOWSCORE ao evento Collect Block, para que sempre que se apanhe um coletável, além de somar 100 à pontuação, se atualize a pontuação no ecrã. Abre o teu evento Collect Block e adiciona o código (incluindo o AT 0 6). Agora deve ficar assim:

EVENT COLLECTBLOCK

SCORE 100

AT O 6
SHOWSCORE

Não te esqueças de carregar em ENTER depois da última linha!

Guarda e fecha o teu script do evento Collect Block e volta a compilar o teu jogo (Build).

Viva! O Stinky Dog consegue apanhar ossos...e marcar pontos!

SEGUINTE: Parte 12: Adicionar escadas

Todo o MPAGD Iniciantes