[Super tuto] Como criar um cubo em 3D(GML){AVANÇADO}{Edit:1}

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

[Super tuto] Como criar um cubo em 3D(GML){AVANÇADO}{Edit:1}

Mensagem por uriel.56 em Sab 29 Jan 2011, 12:16

Super Tuto do Uriel ! Cool


ACONCELHO O USO DO MOZILLA FIREFOX

Eu vim lhe ensinarem isso... por que percebi muitos games nesse forum em 3d, vendo que o 2d já está ficando de fora... Happy

Nivel Avançado

Descrição geral - um cubo em 3d, fixado ao chão, com movimentação nas setinhas

Plataforma Eu uso o gm 8.0 PRO GM8 , Não sei se pega nos outros...

Bem vamos começar

Abra o seu gm.. de preferencia o gm 8.0 PRO GM8

depois de aberto, vamos criar
um sprite 32x32
''spr_mask'' -> Que será a mascara do cubo ( Pinte-o todo de verde)

e depois crie outro sprite 32x32
''spr_texture'' -> Que será a textura do cubo (faça janelas e portas)

e depois crie outro sprite 32x32
''spr_textureup'' -> Que será a textura da parte de cima do cubo (faça um desenho de um concreto)

Com os tres sprites prontos

Vamos criar os obj's

Primeiro

Crie o obj ''obj_camera''

e bote no Create

Spoiler:

// POSIÇÕES DA CAMERA
d3d_start();
d3d_set_perspective(true);
d3d_set_hidden(true);
d3d_set_lighting(false);
draw_set_color(c_white);
d3d_set_culling(false)
d3d_set_shading(true);
texture_set_interpolation(false);

// AS VARIAVEIS
friction=.2;
zdirection=0;
blur=50;
zc=0;

e no Step

Spoiler:

// Esses comando servem para seguir o futuro obj_main e para evitar bugs na camera
x=obj_main.view_follow.x
y=obj_main.view_follow.y
if view_object=obj_Character
exit
zc=obj_main.view_follow.speed*18
if zc>=180 zc=180;
else if zc<=-2 zc=-2;

E no Draw -> Crie dois códigos no primeiro bote

Spoiler:
d3d_set_projection_ortho(0,0,640,480,0);
draw_text(view_xview[0]+2,view_yview[0]+460,obj_main.name); //algum nome que vc quiser q apareça na tela, isto e opcional, para colocar digite no alarm[0] do futuro obj_main

e no outro código bote


Spoiler:
//DRAW WHAT CAMERA SEES

xf=x; //visão x
yf=obj_main.view_follow.y-0.01; //visão y
zf=400+zc; //visão z

xt=x; //visão x (na direçao correta)
yt=obj_main.view_follow.y; //visão y (na direçao correta)
zt=0; //visão z (na direçao correta)
// projeçao da camera
d3d_set_projection_ext(xf,yf,zf, xt,yt,zt, 0,0,-1, blur,1.33,1,1024+256);

Pronto...

agora com o obj_camera de lado
..
vamos criar o ''obj_main''

crie o obj_main..

com o obj_main criado... bote no create

Spoiler:
name=""; //nome que quiser. opcional (coloque entre aspas)
global.mid_x=view_xview[0]+(view_wview[0]/2);
global.mid_y=view_yview[0]+(view_hview[0]/2);
view_follow=obj_Character;

alarm[0]

Spoiler:
name=""; //aqui tambem e preciso colocar nomes, opcional, coloque entre aspas ""

e no Step

Spoiler:
if instance_exists(obj_Character) //se o obj_Character existir
view_follow=obj_Character; //view_follow será igual ao obj_Character

view_object[0]=view_follow; //view[0] ira seguir o futuro ''obj_Character''

global.mid_x=view_xview[0]+(view_wview[0]/2);
global.mid_y=view_yview[0]+(view_hview[0]/2);

e agora, vamos criar o Cubo...

crie o ''obj_wall''

com o obj_wall criado coloque o sprite spr_mask no obj_wall -> Que será a mascara do obj_wall

e depois

bote no Create

Spoiler:
xw=32; // valor de x
yw=32; // valor de y
z=32; // altura do teto
z1=0;// altura do chão

bem no Draw
Spoiler:
draw_set_color(c_white);
d3d_draw_block(x-xw/2,y-yw/2,z,x+xw/2,y+yw /2,z1,sprite_get_texture(spr_texture,0),1,1); // pegar a textura dos lados
d3d_draw_floor(x-xw/2,y-yw/2,z,x+xw/2,y+yw/2,z,sprite_get_texture(spr_textureup,0),1,1); // pegar textura do teto
draw_set_color(c_black);

Bem agora crie o ''obj_Character'' com o C maiusculo

e bote os comandos fáceis como o apertando left jump_to_posision e tal's (vcs ja devem saber disso para poder ta aki! Happy )

ensinei o mais difícil o resto vcs ja sabem... por que agora vou explicar os códigos alien

bem com todos os obj em mão ...

basta botar todos na room...

bote o obj_camera no canto que quiser, o obj_main tambem,

o obj_Character vai fazer o movimento, para testar o 3d

e o obj_wall é um cubo, bote no canto q quiser...

bem
.
se vc quiser aumentar o cubo, basta ir no create e mudar os valores de x e y e z e z1

e se mudar o valor de X ou de Y

vc deve botar a mask do mesmo jeito, ou se n, irá bugar na ora da colisão... cat

por exemplo

se x=32
y=32

mas Z=128
e z1 =0

não faz diferença

mais se

y=40

e x=10

a mask tem que ser no mesmo tamanho

na camera, se vc ja suber o sistemas de luze (da uma realidade a mais nos gráficos)

basta abilitar a função

''d3d_set_lighting de false para true''

por exemplo

d3d_set_lighting(false);
para
d3d_set_lighting(true);

e se não ouver luz na room, o jogo irá ficar completamente escuro...

para diferenciar, vc pode criar vários obj_wall mas tambem várias mask...

bem.. por enquanto é só isso

Por favor digam se deu erro ou bug... ou diga se achou ruim... ou bom...

se sintam lindos e postem pirat

RESULTADO bem pra quem quiser ver como ficou...

ta ai... é igual aos gráficos do meu game 3D cubic game

Está como link... pq o 4shared está em manutenção... e eu só tenho conta lá No
http://img827.imageshack.us/i/imagemwke.jpg/ Se quiser raclamar me prosesi melhor n Happy


Última edição por uriel.56 em Sab 29 Jan 2011, 19:51, editado 1 vez(es)

uriel.56

Número de Mensagens : 430
Idade : 19
Data de inscrição : 13/02/2010
Reputação : -2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Super tuto] Como criar um cubo em 3D(GML){AVANÇADO}{Edit:1}

Mensagem por elicray em Sab 29 Jan 2011, 15:03

Bem, eu ainda não dei uma lida no tópico por causa da formatação... Tópicos assim não me atraem...

Devia melhorar isso... Está uma confusão --\'

elicray

Número de Mensagens : 109
Data de inscrição : 20/12/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Super tuto] Como criar um cubo em 3D(GML){AVANÇADO}{Edit:1}

Mensagem por Godsil4 em Sab 29 Jan 2011, 15:07

kra do ogeito q vc
coloco n chama mta atenção...

pra ficar um bom tutorial q
chame atenção vc precisa de
imagens e separar os codes
de texto normal

tenta melhora esse tutorial
(sem aetnção, sem comentarios)

Godsil4

Ranking : Nota B
Número de Mensagens : 474
Data de inscrição : 26/11/2010
Notas recebidas : B+A
Reputação : 23
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 1
   : 1

http://www.google.com.br

Voltar ao Topo Ir em baixo

Re: [Super tuto] Como criar um cubo em 3D(GML){AVANÇADO}{Edit:1}

Mensagem por Luca$*** em Sab 29 Jan 2011, 16:08

aki nn carregou as imagens(ou spoiler sei la)dos eventos,
sera que podia postar os codes de botar nos eventos ou mandar por mp?

Luca$***

Número de Mensagens : 193
Idade : 20
Data de inscrição : 26/12/2009
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: [Super tuto] Como criar um cubo em 3D(GML){AVANÇADO}{Edit:1}

Mensagem por uriel.56 em Sab 29 Jan 2011, 19:24

vou ver se dou um edit... mais, sei lá, quando eu num boto quase nad ano título
..
o pessoal nem olha... :|

uriel.56

Número de Mensagens : 430
Idade : 19
Data de inscrição : 13/02/2010
Reputação : -2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Super tuto] Como criar um cubo em 3D(GML){AVANÇADO}{Edit:1}

Mensagem por Salathiel em Sab 29 Jan 2011, 21:31

Cara se você quem fez esse tuto eu sou o Super Man.
Achei muita coisa estranha, olha:

// POSIÇÕES DA CAMERA
d3d_start();
d3d_set_perspective(true);
d3d_set_hidden(true);
...

Pra começar, essas funções não serve pra a posição da câmera. E outra coisa, se isso e um tuto porque você não explicou pra que serve uma por uma.

// Esses comando servem para seguir o futuro obj_main e para evitar bugs na camera
x=obj_main.view_follow.x
y=obj_main.view_follow.y
...

De novo, você manda um baita código e só explica que e pra evitar bug.

d3d_set_projection_ortho(0,0,640,480,0);

Isso aqui você nem deu uma explicação. Acho que você nem sabe pra que serve essa função.

//DRAW WHAT CAMERA SEES
xf=x; //visão x
...

Você esqueceu de traduzir essa parte. Sera que você copiou isso? (Claro que sim!)

global.mid_x=view_xview[0]+(view_wview[0]/2);
global.mid_y=view_yview[0]+(view_hview[0]/2);
view_follow=obj_Character;

Aqui não explica nada. Não da pra adivinhar cara, isso poderia ser um codigo pra ivocar o demo, mais você ta tão preucupado com o
ctrl c + ctrl v, que nem liga.

view_follow=obj_Character; //view_follow será igual ao obj_Character

Vou admitir, eu chorei de ri com essa explicação. Acho que você tem que se preocupar em explicar o que vai acontecer se eu fizer isso.

ensinei o mais difícil o resto vcs ja sabem... por que agora vou explicar os códigos

Sinceramente, acho que você tem que procurar um dicionario e ver o que significa "ensinar".

Salathiel

Número de Mensagens : 346
Idade : 20
Data de inscrição : 29/05/2010
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://salathiel1337.blogspot.com/

Voltar ao Topo Ir em baixo

Re: [Super tuto] Como criar um cubo em 3D(GML){AVANÇADO}{Edit:1}

Mensagem por uriel.56 em Sab 29 Jan 2011, 21:56

confused foi mal... ressaca ERA MELHOR EU NUM TER FEITO!!!!


uriel.56

Número de Mensagens : 430
Idade : 19
Data de inscrição : 13/02/2010
Reputação : -2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Super tuto] Como criar um cubo em 3D(GML){AVANÇADO}{Edit:1}

Mensagem por Suadao em Sab 29 Jan 2011, 21:57

Me decepcionei, quando eu li o título pensei que o tutorial fosse do Super Games Sad... Hehe... brincadeiras a parte.

O tutorial está bom, ainda não uso 3D, então para mim por enquanto não vai servir muito, mas talvez no futuro Happy. Mas tente se preocupar mais com a formatação dos tópicos, isso é importante, pois torna o tópico mais chamativo.

Editado:
Era melhor eu nem ter feito
Não diga isso, cara D=. É óbvio que foi bom você ter feito. É sempre bom expandirmos nossa mente com os usuários do fórum. Além do mais, é assim que nós aprendemos, no futuro com certeza você fará tutoriais incríveis Happy.


Última edição por Suadao em Sab 29 Jan 2011, 22:15, editado 2 vez(es)

Suadao

Número de Mensagens : 1035
Idade : 25
Data de inscrição : 22/11/2009
Reputação : 4
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   :
   :
   :

http://www.recursos-mania.forumeiros.com

Voltar ao Topo Ir em baixo

Re: [Super tuto] Como criar um cubo em 3D(GML){AVANÇADO}{Edit:1}

Mensagem por uriel.56 em Sab 29 Jan 2011, 21:59

vlw pelo o post suadao... Very Happy

vou pensar nisso, depois de criar a parte dois que nóis iremos utilizar as luzes pirat

uriel.56

Número de Mensagens : 430
Idade : 19
Data de inscrição : 13/02/2010
Reputação : -2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Super tuto] Como criar um cubo em 3D(GML){AVANÇADO}{Edit:1}

Mensagem por Conteúdo patrocinado Hoje à(s) 15:47


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