Conectar-se

Esqueci minha senha

Últimos assuntos
» Nota de esclarecimento - GMBR voltou!
Ontem à(s) 20:33 por Willy

» Regras do Fórum
Ontem à(s) 19:02 por GMBR

» Retorno da GMBR!!!
Ter 24 Jan 2017, 15:43 por GMBR

» Criando IA Simples para inimigos
Qua 25 Nov 2015, 19:22 por DJDAVYD

» Crio Trilha Sonora para Games!
Qui 27 Ago 2015, 13:50 por Isaias Malafaia

» Western Duels
Seg 24 Ago 2015, 07:47 por theguitarmester

» Dúvida sobre strings, lendo txt
Sab 22 Ago 2015, 20:31 por Pai véi

» Janela Modal
Sab 22 Ago 2015, 09:23 por Pai véi

» LudumDare #33
Sex 21 Ago 2015, 21:17 por WellingtonBecker

» GMS sempre salva projeto ao compilar?
Sex 21 Ago 2015, 12:32 por Pai véi

» Tipo de Draw que dê melhor fps...
Sex 21 Ago 2015, 12:25 por Pai véi

» Banco de Dados online fácil de configurar
Sex 21 Ago 2015, 11:47 por Pai véi

» Ficou estranho esse efeito na terra?
Qua 19 Ago 2015, 20:08 por Adriel

» Você consegue decifrar o que é isso?
Qua 19 Ago 2015, 15:48 por Mateus O de Andrade

» Texto centralizado em sprite 64x64
Qua 19 Ago 2015, 14:00 por Vandson Fernandes

» [Tutorial] Um Único Script para Todos Diálogos do Jogo
Ter 18 Ago 2015, 22:12 por dharrison

» VIDEO AULAS - Plataforma - Recriando Super Mario
Ter 18 Ago 2015, 20:44 por Adriel

» Ajuda deixar room maior
Ter 18 Ago 2015, 15:56 por Stickman

» OST - Rain From The Past (Para Main Themes)
Seg 17 Ago 2015, 23:00 por Jessezyn

» #DGM Aula 01 - Views
Seg 17 Ago 2015, 00:16 por victor13.

» Alguém sabe as dimensões de um galaxy s5?
Dom 16 Ago 2015, 20:06 por vitorfernandes13

» Conquer The Kingdom
Dom 16 Ago 2015, 12:13 por DVictorPS

» [Ajuda] Bug ds_list
Dom 16 Ago 2015, 08:27 por Witen

» câmera seguir player com touch control android
Sab 15 Ago 2015, 15:05 por Lighter

» Apk não roda no celular
Sab 15 Ago 2015, 12:10 por xLuiZzz


3D no GM - Parte 2

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

3D no GM - Parte 2

Mensagem por KJr em 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.
avatar
KJr

Ranking : Nota B
Notas recebidas : B
Data de inscrição : 20/03/2008
Número de Mensagens : 38
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: 3D no GM - Parte 2

Mensagem por RKNF1995 em 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
avatar
RKNF1995

Data de inscrição : 19/07/2008
Número de Mensagens : 1257
Insígnias de JAM :

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

Prêmios
   :
   :
   :

Ver perfil do usuário http://www.rknf1995.blogspot.com

Voltar ao Topo Ir em baixo

Re: 3D no GM - Parte 2

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

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

Ranking : Sem avaliações
Data de inscrição : 08/06/2008
Número de Mensagens : 2314
Insígnias de JAM :

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

Prêmios
   : 3
   : 0
   : 1

Ver perfil do usuário http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: 3D no GM - Parte 2

Mensagem por RKNF1995 em Sex 01 Ago 2008, 13:55

vlw pela resposta era so para ter ceteza
avatar
RKNF1995

Data de inscrição : 19/07/2008
Número de Mensagens : 1257
Insígnias de JAM :

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

Prêmios
   :
   :
   :

Ver perfil do usuário http://www.rknf1995.blogspot.com

Voltar ao Topo Ir em baixo

Re: 3D no GM - Parte 2

Mensagem por Natch em Seg 15 Set 2008, 14:38

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


Brevemente em www.studionatch.com
avatar
Natch

Data de inscrição : 05/06/2008
Número de Mensagens : 501
Insígnias de JAM :

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

Ver perfil do usuário http://studionatch.com.sapo.pt/

Voltar ao Topo Ir em baixo

Re: 3D no GM - Parte 2

Mensagem por Markituh em Qui 29 Out 2009, 11:29

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

Ranking : Sem avaliações
Data de inscrição : 11/10/2009
Número de Mensagens : 2183
Insígnias de JAM :

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

Prêmios
   : 0
   : 0
   : 0

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: 3D no GM - Parte 2

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum