Projeto 3 - Resgate do ET
Neste projeto, vamos desenvolver um jogo que movimenta o ator com a inclinação do celular, sendo este uma nave que se move pelo espaço, resgatando os Ets para aumentar sua pontuação e desviando de meteoros.
A mecânica do jogo é muito simples: a nave se movimenta com a inclinação do celular e o objetivo é resgatar o máximo de Ets enquanto desvia dos meteoros em um determinado período de tempo. A versão que vamos construir é composta por 3 atores: a nave, que responde à inclinação do celular, Os ETs, que se deslocam de forma aleatória para serem resgatados e os meteoros, que também se deslocam de forma aleatória, seguindo um padrão diferente dos Ets, mas devem ser evitados pelo jogador.
Neste projeto introduziremos novos conceitos de programação, como, o uso de variáveis para criar um sistema de pontuação e contagem de tempo, parâmetros aleatórios em um comando para gerar variações e o bloco Repita para fazer o jogo acabar depois de uma quantidade de tempo.
Blocos Utilizados
O Ator Nave
O código que controla o comportamento da nave é bastante simples, uma vez que o seu comportamento é todo criado com o bloco Incline para Mover, colocado dentro de um loop Sempre.
Para isso, em vez de usarmos o bloco de evento Quando Play, vamos utilizado o bloco de evento, para, quando começar o jogo, a nave seja controlada pela inclinação.
Faremos também outro bloco que exercerá a função de um cronômetro, acionado pelo evento Quando Play. Utilizaremos a função dos blocos cianos Defina Variável para definir a variável tempo inicialmente como 60, junto com o comando Repita 60 vezes, para, a cada repetição, subtrair um segundo dessa variável. Ao final desse loop mostraremos a pontuação e pararemos o jogo. Vale ressaltar que o cronômetro não está relacionado com nenhum ator em específico, logo pode ser criado na área de comandos de qualquer ator.
O Ator ET
Vamos começar criando o movimento desse ator. Temos que ele será teletransportado para um lugar aleatório da tela toda vez que a nave encostar nele, ou seja, utilizaremos o bloco Quando Encostar, para fazer o celular vibrar quando o contato ocorrer e utilizaremos o bloco Vá Para com parâmetros aleatórios. Ao usar o bloco Aleatório, o Octostudio define uma gama de valores para sorteio, que faça sentido para aquele comando específico. Por exemplo, no caso do Vá Para, o Octostudio sorteia apenas valores que deixem o ator no espaço da tela. Mas isso pode ser mudado, como faremos no caso do cometa. Após esse contato, o jogador ganhará um ponto, por ter resgatado esse ET, então mudaremos a variável pontos para +1.
Porém, para isso funcionar teremos que definir primeiro a variável pontos, com os mesmos blocos que definimos a variável tempo, de modo que fique visível na tela quantos pontos o jogador tem atualmente.
Além disso, para que o ET não fique estático na tela, iremos utilizaremos um loop Sempre em que ele sempre se moverá um pouco em uma inclinação aleatória (no caso entre 1 e 359 graus).
O Ator Meteoro
O código do meteoro terá uma parte bem parecida com o do ET, visto que, quando o jogador entrar em contato com o meteoro, a variável pontos também sofrerá alteração, porém perdendo pontos (-1),como podemos ver no bloco pequeno ao lado.
Para o movimento do mesmo, faremos algo que pode parecer complexo no começo, mas a intenção é fazer com que o meteoro apareça no canto esquerdo da tela e se movimente como se estivesse caindo na diagonal. Para que o meteoro apareça na esquerda colocaremos dentro de um comando Sempre o comando Vá Para, nos parâmetros colocaremos x:0 e um parâmetro Aleatório no y entre 0 e 180 para que ele apareça no canto esquerdo em uma altura aleatória.
A posição inicial do ator é colocada na parte esquerda da tela, para que ele esteja “escondido” quando o jogo iniciar e então seja movido para algum local aleatório no canto esquerdo da tela.
Já para a parte da aleatoriedade da inclinação da queda, podemos utilizar o comando Mova que recebe a quantidade de blocos para se mover e uma inclinação que utilizaremos um parâmetro aleatório entre 120 e 135, com um comando Esconda no final para que o meteoro desapareça, espere um tempo e apareçam novamente no canto esquerdo. Porém, se o meteoro entrar em contato com o jogador ele também tem que sumir e reaparecer no canto da tela, então colocaremos também o comando de Esconda quando houver a colisão entre a nave e o meteoro.
Para o Futuro
- Implemente sons quando o ator colidir ou pontuar. (Toque o Som)
- Faça que a pontuação seja mostrada na tela ao final do jogo. (Diga)
- Faça com que o jogo termina caso a pontuação ficasse negativa. (Se)
- Crie um "ET do Mal" que se movimenta lentamente em direção à nave.