Cambalinho
Membro
Membro
Autor
Mensagens: 59
Registrado em: Qui Jul 20, 2017 9:59 am
Karma: 15

como posso rodar o Y em 3D?

Dom Nov 26, 2017 12:00 pm

eu consegui aplicar as Particulas em 3D(usando GML):
//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?

Tags:
 
Foxy Of Jungle
Membro
Membro
Mensagens: 72
Registrado em: Qua Abr 26, 2017 12:21 am
Localização: Brasil
Karma: 48
Contato:

Re: como posso rodar o Y em 3D?

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

// 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

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:

part_system_drawit(pFX_PT_Fire);


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

Imagem

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitante