PacMan PDF
PacMan PDF
PacMan PDF
PROGRAMANDO COM O
JOGO “PACMAN”
(Out-2010)
A ideia é espalhar maçãs pelo labirinto e, de cada vez que uma dela toque no PacMan, soma pontos e
desaparece. Criei a variável “pontos” e verifiquei que não havia um espaço decente para a manter no ecrã,
pelo que resolvi chegar todo o esquema 10 passos para baixo.
Foi preciso apenas alterar a colocação inicial do PacMan, que
era em (-10, -10) e passou a ser em (-10,-20). Agora há espaço no
topo do ecrã para colocar a variável “pontos” mais a “vidas” que
também é precisa; e ainda sobra espaço para o nome do projecto.
Entretanto, fiz o seguinte bloco para a Maçã01 que tem um
ciclo “para sempre” a testar constantemente se o PacMan lhe está a
tocar. Quando isso acontece, faz “pop”, soma “pontos”, esconde-se
e pára o bloco, (para descarregar o bloco de memória).
Coloquei o “anuncia outro” porque prevejo que nem todos os
prémios irão estar patentes de início, pelo que, ao anunciar “outro”,
a Maçã estará a pedir que a substituam. Depois veremos como.
A existência do incremento da variável “pontos” implica que a
tenhamos de inicializar. É o que fazem os comandos colocados no
Palco em que, para além da “pontos”, inicializamos também a nova
“vidas” que servirá para contar quantas vezes o PacMan se deixa
apanhar pelos seus opositores; e a variável “Jogo” a que ainda não
distribuímos outro papel senão o de parar a mudança de traje do
PacMan, quando ficar igual a 5.
E chegou a altura de desenhar uma bomba, com dois trajes: um
com o rastilho aceso e outro a rebentar; e também de montar o
primeiro bloco, que é muito parecido com o bloco da Maçã01, com
as seguintes diferenças: inicializa sempre com o traje do rastilho e
só o muda quando toca no PacMan; diminui o número de “vidas”
e, no caso de serem zero, “anuncia fim” do jogo; se ainda há vidas
para perder, “anuncia pum” para que a bomba seja substituída.
A razão porque testo se “vidas < 1” e não se “vidas=0”, é
porque a segunda hipótese só é verdadeira para vidas=0, ao passo
que a primeira contempla também números negativos; e se é
verdade que para ir de 1 a -1 se passa forçosamente pelo zero, pode
essa passagem ser tão rápida que não dê tempo a avaliar “vidas”.
(Isto pode acontecer, por exemplo, se o PacMan tocar em duas
bombas quase ao mesmo tempo).
Mas ainda falta fazer um bloco para que a “bomba01” se mova
pelos caminhos, de uma maneira aleatória. Em relação ao PacMan,
temos de novo: a escolha da direcção, que se obtém sorteando um
número entre -1 e 2, e multiplicando por 90, para dar -90º, 0º, 90º e
180º); mas só vale a pena mudar de direcção quando invadir a zona
verde.
A espera de 0.5 segundos torna a bomba menos nervosa, (para
dar hipótese ao PacMan); mas ela é imprevisível, pois tanto pode
ficar hesitante à procura de uma direcção livre, como pode regredir
sobre os seus passos.
E agora o projecto vai ficar assim, para servir de desafio a
quem o quiser continuar. Penso que só falta duplicar as maçãs e as
bombas e colocá-las em pontos estratégicos. Digo “só falta” mas,
na verdade, falta tudo, pois nunca se sabe até que ponto este
projecto pode ser desenvolvido.
Falta decidir se há maçãs e bombas de reserva para reabastecer
o labirinto e se estas são novos sprites ou apenas o aparecimento
dos mesmos, noutro local. Falta arranjar diferentes frutas e opo-
sitores que dêem e tirem pontos diferentemente.
Falta ainda decidir o que fazer com o “anuncia fim”, (mas “jogo” terá de ser igual a 5 para terminar
os “para sempre”). Falta fazer níveis de dificuldade cujo índice poderá ser a variável “jogo”, etc.. etc..
etc... Aceitas o desafio?
Frederico