sábado, 11 de fevereiro de 2012

[Curso Gm 3D] Aula 2: VISUALIZANDO O MUNDO

ENGINE: Game Maker
NÍVEL: intermediário
TEMA: Game Maker, Visualizando o mundo.
PRÉVIA: Vamos iniciar os trabalhos com o game maker no modo 3D, iniciando com os códigos, e criando nossa primeira engine,faremos uma engine simples, com: câmera em primeira pessoa,solo e movimentos básicos.
DIREITOS: Este tutorial não pode ser copiado nem exibido em outros locais na internet sem a devida autorização do autor.Caso tenha interesse em usá-lo ,contate-me.




INTRODUÇÃO
Como eu já havia dito no tutorial anterior:" a câmera é o principal objeto de um jogo 3D.", ela é quem definirá o estilo de visualização do jogo. Algumas vezes vocês me verão chamá-la de projeção, para que você não se confunda, na hora de mudar a vista do seu jogo.

SCRIPT
Abra o seu Game Maker, inicie um novo projeto,crie um objeto, e coloque o nome dele de ocam.
No depth dele coloque 10000,isso é nescessário para que a câmera seje o último objeto a ser renderizado na room, permitindo assim que vc veja todos os outros à sua frente.
->No create do objeto,nós vamos colocar o seguinte código:

//iniciaremos o modo 3D

d3d_start()
//Setamos a cor de desenho para branco(neutro).
draw_set_color(c_white)

//criamos a variável z,e atribuimos um valor a ela:

z=10

O que fizemos foi "avisar" ao GM,que estamos no modo 3D, e isso vai mudar completamente a forma com que ele tratará o nosso jogo.
*as mudanças foram citadas no 1º tuto da série.

->Baixe uma textura de solo(pode ser de grama),e certifique-se de que ela tem a medida de 128x128,
Se quiser pode usar essa:


->Crie uma background,e carregue a textura do solo para ela.e coloque o nome de: bsolo.

->Vá ao evento Draw,e ponha o seguinte código:

/*Criamos a projeção da câmera,com uma geometria simples,que permitirá enchergar em 180º,à 
frente dela, como na visão humana.*/
d3d_set_projection(x,y,z,x+cos(direction*pi/180),y-sin(direction*pi/180),z,0,0,1);
//Modelamos um solo.
d3d_draw_floor(0,0,0,room_width,room_height,0,background_get_texture(bsolo),32,32)



Ao criar a projeção,nós definimos uma visão de 180º à nossa frente, como na visão humana,como nossa câmera será dinâmica, nós definimos a direction, como a variável que vai mudar o nosso ângulo de visão.
Depois, modelamos um solo simples,que vai da origem até o final da room,com a textura de solo,que se repitirá 32vezes na horizontal e 32vezes na vertical. Você pode ajustar esses valores para obter um melhor resultado.Quanto mais repetições, mais real será o resultado.
Vou abordar melhor sobre as texturas numa futura aula,sobre modelagem.

Agora vamos configurar o movimento da nossa câmera:
->Vá no evento Step,e coloque o código:

//setamos a fricção da câmera.

friction=.5

//Configuramos os movimentos da câmera pelas setas do teclado:

if keyboard_check(vk_right) direction-=5
if keyboard_check(vk_left) direction+=5
if keyboard_check(vk_up) speed=5
if keyboard_check(vk_down) speed=-5

Setamos uma fricção na câmera, fazendo com que ela  desacelere quando estiver se movendo.
E depois criamos moveimentos na câmera, através do teclado.
As setas laterais vão mudar a direction da câmera, o que fará com que ela gire,e as setas verticais,vão setar a velocidade, fazendo ela se mover para frente e para trás.


CONCLUSÃO
Bom, depois de tudo isso temos a nossa engine com câmera,solo e movimentos básicos.
A partir dela vamos continuar o curso nas próximas aulas, implementando: gravidade,modelos,texturas,mais controles e outras coisas.
Se você não conseguiu montar a engine, seguindo o tutorial, aqui vai o download:

Nenhum comentário:

Postar um comentário