Obrigado por visitar a The Game Makers Brasil 😁 Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais.

como posso rodar o Y em 3D?

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
Cambalinho
Membro
Membro
Reações: 0
Mensagens: 59

como posso rodar o Y em 3D?

Mensagem por Cambalinho » Dom Nov 26, 2017 12:00 pm

eu consegui aplicar as Particulas em 3D(usando GML):

Código: Selecionar todos

//evento Create do objecto objPariculas:
PartSystem = part_system_create();
    
    PartType = part_type_create();
    //part_type_shape(PartType,pt_shape_snow);
    part_type_speed(PartType,5,6,0,3);
    part_type_direction(PartType,260,260,0,0);
    part_type_life(PartType,100,100);
    
    PartEmmiter = part_emitter_create(PartSystem);
    part_emitter_region(PartSystem, PartEmmiter, 0, 500, 0, 10, ps_shape_rectangle, ps_distr_linear);
    part_emitter_stream(PartSystem,PartEmmiter,PartType, 4);
mas como  só uso X e Y, ficaram deitadas, como mostra a figura.
Imagem



penso que para resolver eu tenho de rodar o Z, certo?

Avatar do usuário
Foxy Of Jungle
Programador
Programador
Reações: 0
Mensagens: 153
Localização: Brasil
Contato:

Re: como posso rodar o Y em 3D?

Mensagem por Foxy Of Jungle » Dom Dez 24, 2017 11:41 am

Errado, Z é o centro do objeto! ao mudar o Z você rotacionará o objeto!

Aqui seria como fazer:

Imagem



CRIE UM SCRIPT: point_direction_3d

Código: Selecionar todos

// point_direction_3d(x1, y1, z1, x2, y2, z2)
// point_direction gives yaw,
// this gives pitch.
return radtodeg(arctan2(argument5-argument2,point_distance(argument0,argument1,argument3,argument4)));

NO OBJ_FOGO - DRAW EVENT

Código: Selecionar todos

rot_zaxis = point_direction_3d(x,y,z,obj_cam.x,obj_cam.y,-obj_cam.zcam)

d3d_transform_set_identity();
d3d_transform_add_scaling(0.5,0.5,0.5)
d3d_transform_add_rotation_x(90+rot_zaxis);
d3d_transform_add_rotation_z(point_direction(x,y,obj_cam.x,obj_cam.y)+90);
d3d_transform_add_translation(x,y,z);

prt_ef_fire(90,0,0,16,32,-1)

d3d_transform_set_identity();

NO SISTEMA DE PARTICULA VOCÊ COLOCA NO FINAL:

Código: Selecionar todos

part_system_drawit(pFX_PT_Fire);
OBS: prt_ef_fire
é o efeito de fogo (partículas)

Imagem

Responder

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 13 visitantes