[Duvida 3D] Como usar girar um cubo em D3D ?

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

[Duvida 3D] Como usar girar um cubo em D3D ?

Mensagem por un00brn em Ter 12 Fev 2013, 18:45

Ae galera!
Já pesquisei e não consigo achar algo do tipo.


A minha dúvida é o seguinte :
" Tenho um cubo, e quando o player apertar alguma tecla, esse cubo irá girar em torno de z, junto com sua direção "
Tentei usar
Código:

if keyboard_check(vk_left) { direction -= 5 }

A mask do cubo gira, só que o modelo D3D não gira, e permanece parado!
Como resolver? Rolling Eyes

un00brn

Número de Mensagens : 117
Idade : 18
Data de inscrição : 18/06/2012
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.djurielrn.blogspot.com

Voltar ao Topo Ir em baixo

Re: [Duvida 3D] Como usar girar um cubo em D3D ?

Mensagem por Adilson Thiago Vieira em Ter 12 Fev 2013, 18:51

Código:

d3d_transform_set_identity()
d3d_transform_add_rotation_x(0)
d3d_transform_add_rotation_y(0)
d3d_transform_add_rotation_z(direction)
d3d_transform_add_translation(x,y,z)

//aki vc pode substituir:
d3d_draw_ellipsoid(-8,-8,-8,+8,+8,+8,sprite_get_texture(TEXTURA,0),1,1,16)

d3d_transform_set_identity()
vc pode substituir as rotaçoes x,y,z ali em cima(se quize gira de acordo com a direçao e so usa meu code)
no d3d draw elipsoid vc pode modificar para qualquer outro draw 3d,e pode modificar os valores

Adilson Thiago Vieira

Ranking : Sem avaliações
Número de Mensagens : 367
Idade : 19
Data de inscrição : 17/10/2012
Notas recebidas : D+C+C+D
Reputação : 25
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Duvida 3D] Como usar girar um cubo em D3D ?

Mensagem por un00brn em Ter 12 Fev 2013, 18:58

Mas por exemplo, esse Code teria q ser no Draw ?
Eu usei o code acima e gira a camera e não o cubo

un00brn

Número de Mensagens : 117
Idade : 18
Data de inscrição : 18/06/2012
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.djurielrn.blogspot.com

Voltar ao Topo Ir em baixo

Re: [Duvida 3D] Como usar girar um cubo em D3D ?

Mensagem por Adilson Thiago Vieira em Ter 12 Fev 2013, 19:05

sim ponha no draw do cubo!
o objeto 3d vai girar de acordo com a direçao dele

Adilson Thiago Vieira

Ranking : Sem avaliações
Número de Mensagens : 367
Idade : 19
Data de inscrição : 17/10/2012
Notas recebidas : D+C+C+D
Reputação : 25
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Duvida 3D] Como usar girar um cubo em D3D ?

Mensagem por un00brn em Ter 12 Fev 2013, 19:24

Ele está rodando.
Só que está roldando em volta dele, e Uma grande volta, um raio de 200 Pixels ou mais!

é como se a mask dele fosse bem grande.
Olha os code do Player no STEP
Código:

image_angle=direction
if keyboard_check(vk_right) direction-=3
if keyboard_check(vk_left)  {direction+=3}
if keyboard_check(vk_up) speed +=3
if keyboard_check(vk_down) speed +=-3
if keyboard_check_pressed(vk_space) if z=0 z+=15
if speed > 4 speed = 4
if speed < -4 speed = -4

friction=.5

no DRAW
Código:

d3d_transform_set_identity()
d3d_transform_add_rotation_x(0)
d3d_transform_add_rotation_y(0)
d3d_transform_add_rotation_z(direction)
d3d_transform_add_translation(x,y,z)

d3d_draw_block(x-32,y-32,0,x+0,y+0,64,bbody,1,1)

d3d_transform_set_identity()

E na camera
STEP
Código:

x = obj_player.x
y = obj_player.y

DRAW
Código:

distancia=400 //distancia que vc quer
olhar=obj_player //ponto onde vc quer que a camera olhe
d3d_draw_cylinder(x-5000,y-5000,-5000,x+5000,y+5000,+5000,background_get_texture(bsys_sky1),1,1,0,1)
d3d_set_projection(x-distancia,y-distancia,z+distancia,olhar.x,olhar.y,olhar.z,0,0,1)




un00brn

Número de Mensagens : 117
Idade : 18
Data de inscrição : 18/06/2012
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.djurielrn.blogspot.com

Voltar ao Topo Ir em baixo

Re: [Duvida 3D] Como usar girar um cubo em D3D ?

Mensagem por Adilson Thiago Vieira em Ter 12 Fev 2013, 19:43

tente so modificar o draw para:
Código:

d3d_transform_set_identity()
d3d_transform_add_rotation_x(0)
d3d_transform_add_rotation_y(0)
d3d_transform_add_rotation_z(direction)
d3d_transform_add_translation(x,y,z)

d3d_draw_block(x-16,y-16,0,x+16,y+16,64,bbody,1,1)

d3d_transform_set_identity()
aki agora esta centralizado no objeto 3d,veja se resolve...

ps:esta centralizado porq a metade do seu objeto 3d é 16
espero ter ajudado

ha se vc quizer,talves nao seja necessarios os outros transform add rotation x e y,entao,se qze pode tira...

Adilson Thiago Vieira

Ranking : Sem avaliações
Número de Mensagens : 367
Idade : 19
Data de inscrição : 17/10/2012
Notas recebidas : D+C+C+D
Reputação : 25
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Duvida 3D] Como usar girar um cubo em D3D ?

Mensagem por un00brn em Ter 12 Fev 2013, 19:55

Não não...
Veja, eu hospedei ele no 2shared.

Não ligue para os gráficos, são só provisórios Very Happy
http://www.2shared.com/file/KIREoUjJ/Live_work.html

un00brn

Número de Mensagens : 117
Idade : 18
Data de inscrição : 18/06/2012
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.djurielrn.blogspot.com

Voltar ao Topo Ir em baixo

Re: [Duvida 3D] Como usar girar um cubo em D3D ?

Mensagem por Adilson Thiago Vieira em Ter 12 Fev 2013, 20:23

eu tentei baixa o projeto,mais nao estava querendo funcionar,estava aparecendo um erro com a dll39...
eu tentei baixa o projeto,mais nao estava querendo funcionar,estava aparecendo um erro com a dll39...
axei o bug \o/

vc ponhou
Código:

d3d_transform_set_identity()
d3d_transform_add_rotation_x(0)
d3d_transform_add_rotation_y(0)
d3d_transform_add_rotation_z(direction)
d3d_transform_add_translation(x,y,z)

d3d_draw_block(x,y,0,x+32,y+32,64,bbody,1,1)

d3d_transform_set_identity()
ai eu me confundi e concordei com vc e postei outro codigo errado...

o certo seria:
Código:

d3d_transform_set_identity()
d3d_transform_add_rotation_x(0)
d3d_transform_add_rotation_y(0)
d3d_transform_add_rotation_z(direction)
d3d_transform_add_translation(x,y,z)

d3d_draw_block(-16,-16,0,+16,+16,+64,bbody,1,1)

d3d_transform_set_identity()
notou diferença?
nao precisa de "x+=?",o d3d_transform_add_translation(x,y,z) ja faz com que se refira as posisoes x y e z do objeto,tendeu?

flw!

Adilson Thiago Vieira

Ranking : Sem avaliações
Número de Mensagens : 367
Idade : 19
Data de inscrição : 17/10/2012
Notas recebidas : D+C+C+D
Reputação : 25
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Duvida 3D] Como usar girar um cubo em D3D ?

Mensagem por Rodrigo Santiago em Ter 12 Fev 2013, 21:22

Desculpa, nao sei se e essa pergunta mas voce deve dividir as transformacoes em:
girar, alongar, mover. Lembrese que todas elas rodam no eixo 0, ate pq o programa nao vai saber o centro do seu modelo(cubo) 3d.
Entao sempre use nessa sequencia
girar(rotate)
mover(translate)
draw
limpar(identity)para nao afetar os proximos desenhos, ate mesmo de outros objetos.
Lembrese de nao colocar x,y,z no draw, coloque apenas numeros , o xyz devem ficar no translate.

ex:
x+5,y+5,z+2,x-2,y+3,z+4 -errado

translate x,y,z
5,5,2,-2,3,4. -correto

obs eu resumi as palavras presumindo que voce saiba.
Veja a minha apostila em perguntas e respostas(eu errei o topico) .

Rodrigo Santiago

Ranking : Nota B
Número de Mensagens : 1281
Idade : 20
Data de inscrição : 28/07/2012
Notas recebidas : C + C + B
Reputação : 73
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 1
   : 3

Voltar ao Topo Ir em baixo

Re: [Duvida 3D] Como usar girar um cubo em D3D ?

Mensagem por un00brn em Qua 13 Fev 2013, 23:59

Perfeito, o code funciona!
Só que há um problema...

Meu game é uma conexão LAN!
Eu estou usando no STEP do Player
Código:

buff_clear(0);
set_id(0);
write_value(x);
write_value(y);
write_value(z);
write_value(direction);
write_value(speed);
write_value(image_angle)

Só que, o Angulo 3D do obj não está sendo enviado. ele anda normal, só q no outro player não chega a rotação do obj.
Como faço para ele enviar a direção ou seja a 'transformaçao' do meu player para o outro em Lan?

un00brn

Número de Mensagens : 117
Idade : 18
Data de inscrição : 18/06/2012
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.djurielrn.blogspot.com

Voltar ao Topo Ir em baixo

Re: [Duvida 3D] Como usar girar um cubo em D3D ?

Mensagem por Adilson Thiago Vieira em Qui 14 Fev 2013, 17:21

bom,ai ja é mais complicado,pois eu nao mexo muito com jogos online,mas eu tinha visto algo sobre isso,vou ver se encontro,se encontrar dou um edit!

Adilson Thiago Vieira

Ranking : Sem avaliações
Número de Mensagens : 367
Idade : 19
Data de inscrição : 17/10/2012
Notas recebidas : D+C+C+D
Reputação : 25
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: [Duvida 3D] Como usar girar um cubo em D3D ?

Mensagem por un00brn em Sab 16 Fev 2013, 23:30

Certo, Porém... Mesmo que precise de alguma DLL ou algo do tipo, pode me falar!

Se eu conseguir fazer essa configuração rodar on-line sem muito Lag, esse game será fantástico ( Ou não ) kkk'

un00brn

Número de Mensagens : 117
Idade : 18
Data de inscrição : 18/06/2012
Reputação : 7
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

http://www.djurielrn.blogspot.com

Voltar ao Topo Ir em baixo

Re: [Duvida 3D] Como usar girar um cubo em D3D ?

Mensagem por Conteúdo patrocinado Hoje à(s) 13:26


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