[RESOLVIDO] Rotação de objetos 3D
em Sab 28 Abr 2012, 14:06
Ola pessoal, tenho uma duvida sobre as transformações com objetos 3d no GM. Mesmo lendo alguns cursos daqui não consegui fazer dar certo o que eu queria.
Eu estou usando o seguinte codigo:
d3d_transform_set_identity()
d3d_transform_add_rotation_z(rz)
d3d_draw_block(x,y,z,x+32,y+32,z+32,0,0,0)
d3d_transform_set_identity()
estou usando uma variavel "rz" para rotação no eixo z, que tem por finalidade fazer girar o objeto se eu apertar o botão.
O problema é que o objeto não gira no centro do objeto e sim usa um centro qualquer na sala, porque isso acontece?
Eu estou usando o seguinte codigo:
d3d_transform_set_identity()
d3d_transform_add_rotation_z(rz)
d3d_draw_block(x,y,z,x+32,y+32,z+32,0,0,0)
d3d_transform_set_identity()
estou usando uma variavel "rz" para rotação no eixo z, que tem por finalidade fazer girar o objeto se eu apertar o botão.
O problema é que o objeto não gira no centro do objeto e sim usa um centro qualquer na sala, porque isso acontece?
- Ranking :
Notas recebidas : D + A + A
Data de inscrição : 06/12/2009
Número de Mensagens : 1229
Insígnias de JAM :x 1
x 0
x 0
Reputação : 28
Prêmios: 1
: 2
: 0
Re: [RESOLVIDO] Rotação de objetos 3D
em Sab 28 Abr 2012, 17:45
Você deve adicionar esse código antes do d3d_draw_block:
- Código:
d3d_transform_add_translation(x,y2,z)
Esse código faz com que o objeto gire em seu próprio eixo, mas, quando se usa esse código o ponto de origem é
X, Y e Z, ou seja, não se pode usar mais essas variáveis na hora de desenhar os modelos, no seu caso ficaria mais ou menos assim:
- Código:
d3d_draw_block(-16,-16,-16,16,16,16,0,0,0)
Se ainda não entendeu, só falar que eu explico melhor...
Flw!

Re: [RESOLVIDO] Rotação de objetos 3D
em Sab 28 Abr 2012, 20:17
Bom, eu testei colocando as transformação depois do evento draw, mas não funcionou, os objetos não se movem
- Ranking :
Notas recebidas : D + A + A
Data de inscrição : 06/12/2009
Número de Mensagens : 1229
Insígnias de JAM :x 1
x 0
x 0
Reputação : 28
Prêmios: 1
: 2
: 0
Re: [RESOLVIDO] Rotação de objetos 3D
em Sab 28 Abr 2012, 21:45
@bmnei escreveu:Bom, eu testei colocando as transformação depois do evento draw, mas não funcionou, os objetos não se movem
O certo seria antes do draw, por exemplo:
- Código:
d3d_transform_set_identity()
d3d_transform_add_rotation_z(rz)
d3d_transform_add_translation(x,y,z)
d3d_draw_block(-16,-16,-16,16,16,16,0,0,0)
d3d_transform_set_identity()
Qualquer problema a mais, só falar!
Flw!

Re: [RESOLVIDO] Rotação de objetos 3D
em Dom 29 Abr 2012, 19:46
tentei mas ainda continua a girar no ponto 0 da sala
- Ranking :
Notas recebidas : D + A + A
Data de inscrição : 06/12/2009
Número de Mensagens : 1229
Insígnias de JAM :x 1
x 0
x 0
Reputação : 28
Prêmios: 1
: 2
: 0
Re: [RESOLVIDO] Rotação de objetos 3D
em Dom 29 Abr 2012, 22:31
@bmnei escreveu:tentei mas ainda continua a girar no ponto 0 da sala
Poderia postar o código que esta usando no evento Draw?
Testei aqui e tudo funcionou perfeitamente, ha mais alguma coisa no evento? .-.
Flw!

Re: [RESOLVIDO] Rotação de objetos 3D
em Ter 22 Maio 2012, 23:36
eu vou colocar o arquivo pra download, é melhor pra analizar
http://www.4shared.com/file/w0vB28a4/erro.html
gabrielsch se vc puder ajudar fico agradecido.
http://www.4shared.com/file/w0vB28a4/erro.html
gabrielsch se vc puder ajudar fico agradecido.
Re: [RESOLVIDO] Rotação de objetos 3D
em Seg 28 Maio 2012, 10:49
Depois de analizar o arquivo resolvido pelo gabrielsch eu conseguir achar o problema.. ta nessa linha
d3d_draw_block(x,y,z,x+32,y+32,z+32,0,0,0)
ele ja tinha citado acima que não se pode usar as variaveis x e y aqui, e sim numeros reais, não entendi o porque, mas funcionou perfeitamente.
obrigado
d3d_draw_block(x,y,z,x+32,y+32,z+32,0,0,0)
ele ja tinha citado acima que não se pode usar as variaveis x e y aqui, e sim numeros reais, não entendi o porque, mas funcionou perfeitamente.
obrigado
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum