[Autor :Cast08 ]
Nível:
1.1. Introdução
-O que você aprenderá:
3D no Game Maker - Parte 1
Créditos: - Autor: desconhecido
Tradução: psycon.
Nível:
- Intermediário.
1.1. Introdução
-O que você aprenderá:
- Indo para 3D modo
Iniciando 3D modo
Criando um 3D bloco
Usando uma camera virtual
Executando o programa 3D
- Código:
//ligando o 3D mode
d3d_start();- Código:
//switch to 2D mode
d3d_end();- Código:
//ligando perspective on
d3d_set_perspective(true);- Código:
//removendo superfícies escondidas
d3d_set_hidden(true);- Código:
//iniciar com a iluminaçao desligada-off
d3d_set_lighting(false);
//set draw color branco
draw_set_color(c_white);- Código:
//draw neblina
d3d_set_fog(true,c_white,1,1024);- Código:
//set culling to false
d3d_set_culling(false)- Código:
//switch shading off
d3d_set_shading(false)
//switch interpolation on
texture_set_interpolation(true)- Código:
//draw the block
d3d_draw_block(0,0,0, 32,32,32,background_get_texture(bac_Block),1,1);- Código:
//draw o q a camera ve
d3d_set_projection(128,96,64, 16,16,16, 0,0,1);- Código:
//create the block object
instance_create(0,0,obj_Block);
1.2. Indo para 3D modo
Esse tutorial mostrara como iniciar com 3D. Para isso nós criaremos um script nomeado ‘scr_Start3D’ no qual nós poremos o código seguinte para chavear/ligar/manipular o 3D modo:
Se você quiser deixar/sair completamente do 3D modo, você usaria o código seguinte:
1.3. Iniciando o 3D mode
Ligando o modo 3D, nos permitiremos fazer materiais/formas 3D, Como desenhar as coisas em perspectiva (3D), que faz com que aquelas estão longe da camera parecer menor, como no mundo real. Assim, façamos isso... Somemos ao código, o seguinte para
nosso script ligar a perspectiva:
Coisas que são escondidas de nossa visão, estando atras de objetos, não é visto por nossos olhos. A mesma coisa pode ser feito no Modo 3D do Game Maker. Nós teremos que ligar a remoção de superfície escondida. Então adicione isto a nosso script:
Você não precisa ligar a iluminação para começar. Então torne-a off (iluminação false) e sete a cor para branco para tornar as cores padrões sem sombreamento e colorizaçao. Nós acrescentaremos o código seguinte ao nosso script de inicialização:
Isto também pode ser simulado em nosso programa usando névoa. (Note que algumas placas de video podem ter dificuldade para desenhar névoa). Assim, somemos o código seguinte para fazer nossos objetos desaparecem na névoa quando estiverem fora de visao:
Se você tem um chão grande e apenas quer desenhar o lado atual que se vê, por exemplo. Deixaremos por enquanto isso de lado. Mas se você quiser acelerar essas ações você pode ligar isso depois.
1.4. Criando um cubo/bloco 3d
Nós podemos desenhar todos os tipos de formas complicadas e modelos, mas devemos começar agora com algo simples: um cubo/bloco. Nós quereremos ver um bloco ou cubo no espaço 3D. Entao vamos criar um script nomeado ‘scr_Block’ que trara o seguinte codigo:
Agora nós temos um bloco para ver, temos de desenhar tudo o que há de ser visto. OK, Mas ainda não criamos nada que possa "ver" o bloco.
1.5. Usando uma camera virtual
Criemos um script que nos permite colocar uma camera virtual em nosso mundo 3D. Essa camera tera o ponto de vista do qual vamos olhar para nosso bloco/ mundo 3D.
A camera é como um olho. Nos permitirá ver o mundo 3D como se nós estivesemos dentro dele. O script que criaremos será ‘scr_Camera’, contendo o codigo seguinte:
A camera olhará da posição (128,96,64) para o centro do nosso bloco (16,16,16).
Os últimos três valores indicam que nós queremos ter a camera dentro da orientação normal (parte superior é para cima).
1.6. Rodando o programa 3d
Nós teremos que criar uma room no GM e pôr algun(s) objeto(s) e nele(s) nosso código.
A room atual sera nomeada ‘roo_Tutorial’. Nós criaremos um objeto para
rodar nosso script da camera e um para nosso bloco com seus scripts.
Iremos criar o objeto para a camera (obj_Camera) onde rodara o script de inicializaçao (scr_Start3D) em seu evento de Criação (Create event).
Esse objeto da camera tambem mostrara o que a camera ve todo o tempo que a tela é desenhada.
Em outras palavras, executara o script da camera (scr_Camera) no Draw event.
Vamos criar o objeto do bloco/cubo (obj_Block) esse rodadra nosso block script
(scr_Block) no Draw event desse mesmo objeto.
Agora vamos fazer o objeto da camera criar o bloco objeto para nós. Como fazer isso? Criaremos um script nomeado ‘scr_Make’, No qual ele criara a instancia do block object. O código fica assim:
Bem, agora temos o obj (obj_Camera) na room (roo_Tutorial).
Lembre-se, não importa onde vc coloque a camera object na Room que seu posicionamento nao sera mudado, isso se faz por causa dos scripts (scr_Camera and scr_Block) que determinao onde o cubo é desenhado e como a camera vê ele.
Agora, está na hora de apertar F5 (ou clique no "play verde") p/ executar o programa e ver o que acontece.
Nós veríamos um cubo colorido no meio de nossa tela, desenhado em perfeita perspectiva.