Introdução
Esse sistema foi criado para que eu pudesse desenvolver o jogo Snow White in the Autumn Easter. Esse é o motivo de não existir uma demo para explicar somente o sistema, eu prefiro criar a teoria e mostrar a vocês a prática que é o próprio jogo.
Irei dividir este tutorial em alguns passos que você deve seguir para criar esse sistema. Espero que gostem e que aprendam bastante com ele.
Um programa que pode ser muito útil na criação desse sistema é o Rm2k No Paste Length, criado por Cherry. Basta você abrir o projeto com este aplicativo e colar o código aqui mostrado no comentário.
O que eu vou ensinar aqui será o sistema básico, sem nenhum detalhe extra como por exemplo o Skip, Tutorial, etc. Só o jogo em si. Inclusive, irei dividir o tutorial em partes para que eu possa explicá-lo muito bem de forma fácil e que você compreenda. Se eu dividir em algumas partes a leitura não ficará pesada, bom aprendizado.
Passo 1: Começando
Essa parte fará com que o jogo seja desenhado, nela você terá de especificar alguns requisitos que você deseja que o jogo respeite de acordo com a sua vontade. Como por exemplo, definir se os gráficos poderão se repetir, e designar que um objeto - no jogo eu falo de ovos mas aqui eu tentarei manter um texto bem independente - não apareça duas vezes seguidas no mesmo lugar. Fora os comandos menores como determinar o panorama, mostrar imagens, decretar algumas variáveis e acionar outras switches.
• Como evitar a mesma coordenada para os objetos?
É necessário o uso de algumas Label's para que o código se repita sempre que uma determinada condição não se satisfizer. E que condição é essa? Primeiro você precisa criar algumas variáveis. Uma variável para cada objeto. Até agora você só precisa dessas, porém mais tarde será preciso criar novas variáveis. Mas calma, não tenha pressa, eu irei explicar passo a passo.
Vamos criar uma situação aqui. Supondo que tenhamos 3 objetos e você queira cada um com uma posição diferente. Variável 1 = Posição_Objeto_1, variável 2 = Posição_Objeto_2 e variável 3 = Posição_Objeto_3.
Porém antes de criar as variáveis de posição, você precisa determinar quantos lugares possíveis deverão existir para que os objetos assumam as possíveis e diferentes coordenadas. Vamos supor que hajam 4 lugares possíveis para as posições dos objetos. Logo, as variáveis de posição deverão assumir um valor aleatório que varia de 1 a 4.
A primeira variável: Posição_Objeto_1 vai assumir, portanto, um valor aleatório de 1 a 4. E as condições anteriormente citadas deverão verificar se a segunda variável terá o mesmo valor que a anterior, o que nós não podemos deixar. O mesmo ocorre com a terceira variável de posição. Cada um dos objetos deverá assumir uma posição diferente. Já que mencionamos utilizar as Label's para criar esse pensamento, usaremos a seguinte lógica:
Lembrando que o termo "Ovos" pode ser substituído por "Objetos" e onde está *8, no nosso código, deverá ser *4 porque criamos uma variável que varia de 1 a 4 e não de 1 a 8.
Na imagem podemos ver as condições citadas anteriormente. Elas criam um loop que caso a posição do objeto atual seja igual à do anterior o processo irá se repetir.
Chegamos ao fim dessa parte. Agora os 3 objetos receberão diferentes coordenadas. Vamos para a próxima tarefa.
• Como evitar o mesmo gráfico dos objetos?
O raciocínio é o mesmo, uso de novas Label's e condições para diferenciarem os gráficos dos objetos. Não tem mistério. Criaremos mais 3 variáveis, onde cada uma das novas variáveis vai receber um valor também aleatório que irá indicar qual gráfico receberá o objeto em questão. Variável 4 = 1º Objeto, variável 5 = 2º Objeto e variável 3 = 3º Objeto.
Esse é o fim de mais uma etapa.
Agora vamos completar o evento com certos detalhes para que o sistema tenha um bom andamento.
Repita os comandos apresentados na imagem acima na demo caso esteja realmente testando. Lembrando que esse evento deve estar em Início Automático.
Chegamos ao fim da Parte 1. Para que o tutorial não fique maçante, deixarei a próxima parte para depois. Espero que tenham curtido essa minha iniciativa e qualquer dúvida podem perguntar aqui no tópico.
Lembrando que esse sistema foi criado para que eu pudesse desenvolver o jogo Snow White in the Autumn Easter.