GMBR
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Entrar

Esqueci-me da senha

Últimos assuntos
» player não consegue andar
por lovn7 Qui 21 Nov 2024, 13:33

» É possível fazer istó no game maker
por William Lima Qui 21 Nov 2024, 10:56

» Rio Rise - novo launcher do Gta San Andreas SAMP Brasil
por Lua Sáb 16 Nov 2024, 20:22

» (Resolvido) Cenario longo x Texture Pages
por josuedemoraes Sáb 16 Nov 2024, 15:31

» Kids' band
por Adilson Lucindo Santos Sex 15 Nov 2024, 12:23

» (RESOLVIDO) Engasgos-Troca de Sprites/animações
por josuedemoraes Ter 12 Nov 2024, 01:49

» Block Room - DEMO
por Joton Qua 06 Nov 2024, 22:58

» Game Infinito vertical (subindo)
por macmilam Sáb 26 Out 2024, 12:36

» Retorno da GMBR!!!
por Dancity Ter 22 Out 2024, 16:36

» Máquina de estados
por aminaro Qui 10 Out 2024, 13:33

» como faço pra um objeto colidir com o outro e diminuir a vida do player ?
por josuedemoraes Qui 03 Out 2024, 16:51

» RESOLVIDO: Colisão com objetos moveis
por josuedemoraes Qua 02 Out 2024, 20:28

» Crypt of the Blood Moon
por divin sphere Qua 11 Set 2024, 18:18

» como fazer um objeto seguir?
por divin sphere Dom 18 Ago 2024, 18:08

» Procuro de alguém para Modelar/Texturizar/Animar objetos 3D
por un00brn Dom 11 Ago 2024, 11:10

» Destruição de cenário (estilo DD Tank)
por CoronelZeg Sex 09 Ago 2024, 17:16

» RESOLVIDO-Como destruir uma instancia especifica de um objeto
por josuedemoraes Ter 23 Jul 2024, 00:40

» Automatizar a coleta de id
por GabrielXavier Seg 22 Jul 2024, 18:01

» Preciso de ajuda para concluir um pequeno projeto
por lmoura Qui 27 Jun 2024, 15:45

» ANGULO ACOMPANHAR O OBJETO
por Klinton Rodrigues Qui 27 Jun 2024, 08:34

» Musica reinicia quando sala reinicia
por GabrielXavier Ter 18 Jun 2024, 07:28

» como fazer uma copia de gd
por generico_cube Sex 14 Jun 2024, 15:48

» Square Adventure
por guilherme551 Ter 11 Jun 2024, 09:54

» como posso definir limite de uma variavel
por GabrielXavier Sex 07 Jun 2024, 14:14

» [Resolvido] Dúvida, colisão única de objeto
por vdm842 Sex 24 maio 2024, 09:50


3D no GM - Parte 2

5 participantes

Ir para baixo

3D no GM - Parte 2 Empty 3D no GM - Parte 2

Mensagem por KJr Qui 03 Abr 2008, 19:20

Se você tiver o projeto do fim do 1º tutorial, você poupa tempo, mas eu vou falar desde o início.

Importe dois backgrounds diferentes, um será o céu e o outro o chão. Nomeie-os de back_sky e back_floor, respectivamente.

Agora crie o obj_cam. No evento Create deste objeto, execute o script ini_3D:
Código:
d3d_start();
d3d_set_perspective(true);
d3d_set_hidden(true);
d3d_set_lighting(false);
draw_set_color(c_white);
d3d_set_fog(true,c_white,1,1024);
d3d_set_culling(false);
d3d_set_shading(false);
texture_set_interpolation(true);

Agora começa a mudar. Crie um script de nome ini_camera com esse código:
Código:
zdirection = 0;
instance_create(x,y,obj_player)
instance_create(0,0, obj_floors)

Execute este script no evento Create do obj_cam, após o script ini_3D.

Esse script vai declarar a variável zdirection(cujo uso será visto em breve) e criar uma instância do obj_player e uma obj_floors, assim você não vai precisar colocar estes objetos na room, bastará colocar um obj_cam no local onde você quer que o jogador comece.

Crie um objeto obj_player e no evento Create, em um Execute Code, declare a variável z, que representa a posição do player no eixo Z:
Código:
z=0;

Agora crie um script dra_camera:
Código:
xf = obj_player.x;
yf = obj_player.y;
zf = obj_player.z + 64;

xt = xf+cos(degtorad(direction));
yt = yf-sin(degtorad(direction));
zt = zf-sin(degtorad(zdirection));

d3d_set_projection(xf,yf,zf, xt,yt,zt, 0,0,1);

Execute esse script no evento Draw do obj_cam. Vamos analisar o código.
Como já foi visto, xf,yf,zf é de onde a câmera está, nesse caso, a câmera sempre estará onde o player estiver. Já xt,yt,zt é pra onde a câmera olha. Ela sempre vai olhar para um local que é relativo ao ponto(xf,yf,zf) e à direção da câmera.

direction é a direção no plano, é uma variável interna do GM.
zdirection é a variável que declaramos antes, e indica a direção vertical da câmera, se elá está olhando pra cima ou pra baixo.

Tudo bem, mas e o movimento?!
Vamos criar o script de movimento, scr_move, que será executado no evento Step do obj_player. Vamos construí-lo passo a passo:

Código:
friction = 0.5
Define o atrito no plano XY em 0.5

Código:
if keyboard_check(vk_up) then {motion_add(obj_cam.direction,0.2);friction=0;}
else
if keyboard_check(vk_down) then {motion_add(obj_cam.direction+180,0.2);friction=0;}

Se a seta pra cima for pressionada, adicionará um vetor de movimento na direção da câmera, vai mover o player pra frente.
Se a seta pra baixo for pressionada, adicionará um movimento inverso, pra trás.

Código:
if keyboard_check(vk_left) then {obj_cam.direction+=4;}
else
if keyboard_check(vk_right) then {obj_cam.direction-=4;}

Se a seta pra esquerda for pressionada, mudará a direção do obj_cam. O contrário vale pra seta da direita.

Código:
if keyboard_check(ord('W')) and obj_cam.zdirection > -80 then {obj_cam.zdirection-=4;}
else
if keyboard_check(ord('S')) and obj_cam.zdirection < 80 then {obj_cam.zdirection+=4;}

Se as teclas W/S forem pressionads, mudará a zdirection, fazendo a câmera olhar para cima/baixo.

Código:
if speed > 12 then speed = 12;
if speed < -6 then speed = -6;

Essas duas linhas limitarão a velocidade de movimento.

Código:
obj_cam.zdirection *= 0.95

Essa linha vai fazer com que a câmera sempre retorne aos poucos para a posição original, olhando reto.

Esse script acabou. Agora crie um novo script dra_floors:
Código:
text_floor = background_get_texture(back_floor)
text_ceil = background_get_texture(back_sky)

d3d_draw_floor(-4096,-4096,0, 4096,4096,0, text_floor, 1,1)
d3d_draw_floor(-4096,-4096,256, 4096,4096,256, text_ceil, 1,1)

Este script vai desenhar o chão e o céu, de acordo com os backgrounds que foram importados no início. Portanto crie um obj_floors, e no evento Draw execute esse script.

Último passo, crie uma room, coloque um obj_cam em algum lugar e rode o jogo.  ;D

Pronto. Você tem um céu e um chão, e um herói que se movimenta, temos uma visão em primeira pessoa. ;)

Os dois tutoriais já dão uma base boa pra quem quer começar, além de mostrarem que dá um trabalho enorme fazer um jogo em 3D.
KJr
KJr

Games Ranking : Nota B

Notas recebidas : B
Data de inscrição : 20/03/2008
Reputação : 0
Número de Mensagens : 38
Prêmios : 3D no GM - Parte 2 Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

3D no GM - Parte 2 Empty Re: 3D no GM - Parte 2

Mensagem por RKNF1995 Sex 01 Ago 2008, 10:24

cara eu fiz egostei mas so da pra aze no pro queria saber se tem algum seja possivel na verssao free do gm pois o pc que eu mais utilizo pra criaçao de jogos te so a verssao free
RKNF1995
RKNF1995

Data de inscrição : 19/07/2008
Reputação : 6
Número de Mensagens : 1257
Prêmios : 3D no GM - Parte 2 Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.rknf1995.blogspot.com

Ir para o topo Ir para baixo

3D no GM - Parte 2 Empty Re: 3D no GM - Parte 2

Mensagem por Kabeção Sex 01 Ago 2008, 12:16

Não é possivel, as funções d3d só podem ser utilizadas na versão pro.
Kabeção
Kabeção

Games Ranking : Sem avaliações

Data de inscrição : 08/06/2008
Reputação : 100
Número de Mensagens : 2314
Prêmios : 3D no GM - Parte 2 Empty

Medalhas x 0 Tutoriais x 7 Moedas x 0

Ouro x 3 Prata x 0 Bronze x 1

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://blackcapapps.blogspot.com.br/

Ir para o topo Ir para baixo

3D no GM - Parte 2 Empty Re: 3D no GM - Parte 2

Mensagem por RKNF1995 Sex 01 Ago 2008, 13:55

vlw pela resposta era so para ter ceteza
RKNF1995
RKNF1995

Data de inscrição : 19/07/2008
Reputação : 6
Número de Mensagens : 1257
Prêmios : 3D no GM - Parte 2 Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.rknf1995.blogspot.com

Ir para o topo Ir para baixo

3D no GM - Parte 2 Empty Re: 3D no GM - Parte 2

Mensagem por Natch Seg 15 Set 2008, 14:38

gostei tutourial...
nao tem o tutourial (3D no GM - Parte 3)? queria aprender mais, lol
_____________________________________________

3D no GM - Parte 2 Banner10
Brevemente em www.studionatch.com
Natch
Natch

Data de inscrição : 05/06/2008
Reputação : 0
Número de Mensagens : 501
Prêmios : 3D no GM - Parte 2 Empty

Medalhas x 0 Tutoriais x 0 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://studionatch.com.sapo.pt/

Ir para o topo Ir para baixo

3D no GM - Parte 2 Empty Re: 3D no GM - Parte 2

Mensagem por Markituh Qui 29 Out 2009, 11:29

Cara eu fiz tudo o que você falou,ai quando vou testar fica tudo preto! :|
Markituh
Markituh

Games Ranking : Sem avaliações

Data de inscrição : 11/10/2009
Reputação : 106
Número de Mensagens : 2184
Prêmios : 3D no GM - Parte 2 Empty

Medalhas x 0 Tutoriais x 1 Moedas x 0

Ouro x 0 Prata x 0 Bronze x 0

Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Ir para o topo Ir para baixo

3D no GM - Parte 2 Empty Re: 3D no GM - Parte 2

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo


 
Permissões neste sub-fórum
Não podes responder a tópicos