TUTORIAL 13 - MUDANDO DE MAPA

        Neste tutorial aprenderemos como mudar de mapa durante a execução do jogo, isto permite que o jogo seja dividido em diversos ambientes diferentes.

        Primeiramente crie um novo projeto, chame o primeiro mapa de “Mapa01” e em seguida crie um pequeno cenário nele com uma base sólida para que o ator principal possa andar sobre ela e também crie uma estrutura representando um prédio, pode um cubo grande e um pequeno com uma textura de porta no pequeno, quando o nosso o ator principal colidir com a porta mudaremos o cenário para um outro mapa, quando concluir o cenário deverá estar parecido com este:

      Agora vamos criar um novo mapa, para isso vá até o menu “Arquivo -> Novo Mapa”, chame o novo mapa de “Mapa02”. Neste mapa crie um cenário interno, para isso utilize 6 cubos posicionados para formar um outro cubo, o nosso cenário será o interior deste cubo, utilize as mesma texturas usadas para fazer o prédio no mapa anterior para as paredes e uma outra para o chão, em uma das paredes posicione a mesma porta utilizada no outro mapa. Após concluir o cenário deve estar parecido com este:

      Com os dois ambientes prontos vamos criar os scripts para a mudança entre os mapas, volte para o “Mapa01”, para isso utilize à aba “Mapas” que esta próxima a paleta de objetos, nesta aba são listados todos os mapas do projeto atual.

      Com o “Mapa01” aberto selecione a porta criada e vá até o evento “OnCollision”, vamos criar o evento que carregará o “Mapa02” ao colidirmos com ela. Para carregar um novo mapa existe o comando “LoadMap” e para exibir uma tela enquanto este novo mapa é carregado podemos usar o comando “ShowLoadingScreen”. Antes de criar o script crie um novo material chamado “LoadScreen” com uma textura que será exibida enquanto o novo mapa estiver sendo carregado. O script para mudança de mapa ficou assim:

   ShowLoadingScreen('LoadScreen', '', 0, 0);
   LoadMap('Mapa02.gbm', 0, 1, 0, 10);

      O comando “ShowLoadingScreen” recebe como parâmetro o nome do material/textura a ser exibido na tela, no meu caso “LoadScreen”, o segundo parâmetro é um texto para ser exibido, como a minha imagem já possuía um texto deixei este texto em branco, e os outros dois parâmetros são referentes a posição x, y do texto a ser exibido. O Comando “LoadMap” recebe como parâmetro o nome do mapa a ser carregado, no caso “Mapa02.gbm”, não esqueça-se de sempre incluir a extensão do arquivo “.gbm”, os próximos 3 parâmetros são referentes as coordenadas x, y, z onde o ator principal irá aparecer no novo mapa, dependendo de como você modelou o seu cenário será necessário alterar estes valores, e o ultimo parâmetro é o tempo de espera em milisegundos para que o mudança de mapa ocorra.

      Salve o script e o mapa, em seguida, ainda no “Mapa01” vamos criar mais um evento, acesse o menu “Mapa -> Eventos -> OnCreate”, este evento ocorre sempre que o mapa é criado, dentro do evento adicione o seguinte script:

   HideLoadingScreen();

      Este comando esconde a tela que vamos exibir enquanto um mapa estiver sendo criado, como no próximo mapa também exibiremos esta tela ao carregarmos novamente o “Mapa01” devemos escondê-la quando o mapa estiver completamente carregado.

      Para concluir salve o script e o mapa, agora através da aba “Mapas” abra novamente o “Mapa02”.

      Faça a mesma coisa para a outra porta que está neste ambiente, crie o script “OnCollision” para ela com o seguinte script:

   ShowLoadingScreen('LoadScreen', '', 0, 0);
   LoadMap('Mapa01.gbm', 0, 1, 0, 10);

      Como você pode notar o script é praticamente o mesmo do utilizado no mapa anterior porém agora é carregado o “Mapa01.gbm”, outro parâmetro que também pode mudar é posição inicial do ator principal no comando “LoadMap” dependendo de como você modelou o seu cenário.

      Em seguida salve o script e o mapa, neste mapa também crie um evento “OnCreate” para ele, assim como foi feito no “Mapa01” acessando o menu “Mapa -> Eventos -> OnCreate” e adicione o seguinte script a este evento:

   HideLoadingScreen();

      Salve o seu script e o seu mapa, se você fez tudo corretamente a mudança de mapas esta completa, para testar como ficou execute o jogo, ande com o ator até a porta criada, ao colidir com ela o outro mapa será criado, e neste outro mapa colidindo novamente com a porta o ator retornará para o mapa anterior.

      Este foi mais um exemplo do que pode ser feito utilizando a linguagem script, nos próximos tutoriais aprenderemos a fazer outras coisas utilizando scripts.