Cursos / Jogos Digitais / Desenvolvimento com Motores de Jogos I / Aula
A plataforma fixa será similar às caixas adicionadas na aula passada, porém, flutuarão pelo cenário, requisitando ao usuário um pulo mais alto, ou até mesmo o apoio de uma caixa, para que consiga subir.
Começaremos a criação de nossa plataforma fixa do mesmo modo como fizemos com a caixa anteriormente. Selecionaremos, na pasta Sprites, o script que criamos para as plataformas e o arrastaremos para o GameObject Platforms, a fim de criar um novo filho desse objeto com o componente Sprite Renderer já definido para o sprite que estamos utilizando nas plataformas. Renomeie o GameObject criado para Platform, caso já não esteja assim nomeado.
A primeira alteração que faremos nesse GameObject será em relação à sua cor. Utilizaremos a cor RGB = (37, 32, 98) ou, em Hex, #252062FF. Enquanto estivermos no componente Sprite Renderer, aproveitaremos para colocar a plataforma em sua ordem adequada, com o valor 1 para a Order in Layer. Em seguida, adicionaremos um Box Collider 2D à nossa plataforma para que seja possível colidir com ela. Já fizemos isso várias vezes, em Add Componente -> Physics 2D -> Box Collider 2D. Por fim, alteraremos a escala em X da plataforma para o valor 7, pois essas plataformas são mais achatadas e compridas do que as caixas previamente definidas.
Feito isso, temos a nossa plataforma já definida. Precisamos, apenas, criar suas várias instâncias e posicioná-las adequadamente. Como já temos o objeto base concluído, podemos criar o nosso Prefab! Lembra como?
Isso! Basta arrastar o componente configurado para a pasta Prefabs e, então, nessa pasta, teremos o novo asset criado! Agora, com o asset criado, adicione duas novas instâncias da nossa plataforma à cena. Lembrando, basta arrastar o asset até o GameObject Platforms.
Como vimos na Figura 8, utilizaremos uma dessas plataformas logo no começo, após a segunda caixa, para pular a primeira parede. Em seguida, utilizaremos mais duas para subir na segunda parede do cenário, usando uma caixa para subir, mais uma vez. Com isso, totalizamos as três plataformas que devemos criar.
Como essas plataformas ficam elevadas, diferentemente das caixas, precisaremos alterar, nas três instâncias, tanto a posição em X quanto a posição em Y de cada uma delas. Os valores finais para a posição de cada uma das caixas devem ser (-170.5, 0.8, 0), (-57.3, 0.8, 0) e (-38.2, 6.5, 0). Perceba que tanto o valor X quanto o valor Y varia, fazendo-as terem posições diferentes no cenário, além de alturas também diferentes. Desse modo, o cenário deve ficar como visto na Figura 9.
Agora que posicionamos as três primeiras plataformas, adicionaremos as paredes, para essas plataformas fazerem um pouco mais de sentido em relação à maneira como estão posicionadas.
Adicionadas as plataformas fixas e as caixas, o último componente estático que adicionaremos ao nosso cenário são as paredes. Esses componentes serão mais longos verticalmente e se posicionarão próximos às bordas de alguns dos buracos que a fase possui.
Definiremos as paredes como Prefabs, da mesma maneira como fizemos anteriormente. Utilizaremos, para criar um novo GameObject como filho do Platforms, o sprite de plataformas que criamos previamente. Dessa vez, chamaremos o novo objeto criado de Wall.
As definições que faremos ao objeto são as mesmas feitas anteriormente. Primeiramente, alteraremos a cor dele para, em RGB, (98, 32, 32) ou, em Hex, #622020FF. Em seguida, ainda no componente Sprite Renderer, alteraremos a Order in Layer para 1. Por fim, adicionaremos o Box Collider 2D que tratará as colisões com esse objeto.
Em relação à posição, alteraremos tanto o X quanto o Y da posição desses objetos, portanto, não há necessidade de definir esses campos no Prefab. Acerca da escala, por sua vez, utilizaremos a mesma largura para todos, com X = 3. O Y da escala também variará de acordo com o posicionamento que for feito para a parede.
Definidos a cor, a Order in Layer, o Collider, o nome e a escala do objeto, precisamos, apenas, definir a camada do objeto e, então, estaremos prontos para criar o nosso asset Prefab a partir desse componente. Escolha a camada Ground, para que o personagem possa detectá-lo adequadamente como chão. Clique no componente, arraste-o até a pasta Prefabs, como vimos anteriormente, e pronto! Ele estará criado.
De acordo com o que vimos na Figura 8, precisaremos de quatro paredes para definir o nosso cenário. A primeira será posicionada após a primeira plataforma, a segunda será após o segundo grupo de plataformas, a terceira será do outro lado do buraco, e a última será o obstáculo final, após as plataformas que caem. Com isso, precisaremos adicionar mais três instâncias do Prefab, totalizando quatro elementos do tipo Wall. O posicionamento e a escala desses elementos podem ser vistos na Tabela 1.
Elemento | Posição (X,Y,Z) | Escala(X,Y,Z) |
Wall | (-160, -2, 0) | (3,8,1) |
Wall | (-21.5,0,0) | (3,12,1) |
Wall | (11.5, -2, 0) | (3,8,1) |
Wall | (234, 0, 0) | (3,12,1) |
Ok! Criado o Prefab, replicadas as instâncias e posicionadas de acordo com a Tabela 1, teremos todas as nossas paredes adicionadas ao cenário nas posições corretas. Já adicionamos mais um pouco de dificuldade ao nosso jogo, o que o torna mais interessante de se jogar! Vejamos o resultado na Figura 10.
Assim, concluímos toda a parte estática de nosso cenário. Vamos, agora, às plataformas móveis! Tudo bem até aqui? Vimos muitos elementos interessantes para a dinâmica de nosso jogo, e ainda temos muito mais a conhecer nesta aula, aguenta firme! ;)
Versão 5.3 - Todos os Direitos reservados