Conectar-se
Quem está conectado
26 usuários online :: 1 usuário cadastrado, Nenhum Invisível e 25 Visitantes

jailson_dante

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 24/05/2013
Número de Mensagens : 128
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

Rotação em torno do eixo Z

em Qua 29 Jul 2015, 05:43
Olá!
Fiz algo que não é um jogo ainda em 3D, meu tanque de guerra está girando em torno do Z, mas não como eu queria, ele gira como se fosse em uma área muito grande...

Certo:     /\ > \/ <
Como o meu está:


./\              
.                          >
.           \/
.<
BEM ESTRANHOO!!!
Vou mandar as scripts e a engine Smile
(Ignorem o dinossauro)
tanque
Create
Código:

z=0
global.tank = d3d_model_create();
d3d_model_load(global.tank,'tank.d3d');
Step
Código:

friction=0.6
if keyboard_check(vk_f5)
{
speed=2
}
if keyboard_check(vk_f5)
{
speed=2
}
if keyboard_check(vk_f3)
{
direction-=2
}
if keyboard_check(vk_f4)
{
direction+=2
}
Draw
Código:

d3d_transform_set_identity();
d3d_transform_add_rotation_z(direction);
d3d_transform_add_translation(x,y,z);
d3d_model_draw(global.tank,x,y,z,background_get_texture(background3));
d3d_transform_set_identity();
Engine(mediafire):Clique aqui!
Scan:Clique aqui!


Última edição por icarodantas123 em Qua 29 Jul 2015, 05:57, editado 1 vez(es) (Razão : Adicionei ícone "Resolvido".)
avatar
Data de inscrição : 24/05/2013
Número de Mensagens : 128
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 3
Ver perfil do usuário

Re: Rotação em torno do eixo Z

em Qua 29 Jul 2015, 05:55
RESOLVIDO!
Estava vendo um tutorial do Kabeção e descobri como fazia Very Happy

Link do tutorial:GM3D 03 – Usando Transformações

Onde estava o problema:
Código:

d3d_transform_set_identity();

d3d_transform_add_translation(x,y,z);
d3d_draw_model(modelo,0,0,0,textura);

d3d_transform_set_identity();
d3d_transform_add_translation(x,y,z) – defini o ponto de origem das transformações. Os modelos também serão desenhados a partir dele (é como se fossem os novos pontos x, y e z do objeto).

d3d_draw_model(modelo,0,0,0,textura) – desenha o modelo. Note que os pontos x,y,z são definidos como 0. Por que?
A resposta é simples. Quanto eu usei d3d_transform_add_translation(x,y,z) os argumentos x,y,z dele se tornaram os novos pontos de origem do modelo. Tudo que for desenhado entre os identificadores será relativo a esta nova origem.
Se o modelo fosse desenhado em 10,15,8:
Seria o mesmo que desenhá-lo na posição x+10,y+15,z+8 na room.
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum