Stránka 1 z 1

particle gravitace

Napsal: duben 11, 2019, 1:35 pm
od BboyScary
Ahoj. Mám vytvořený particle systém, jsou to jen obyčejné pixely na ploše okruhu. Chtěl bych jim dát gravitaci tak, aby se všechny posunovaly do středu toho kruhu. Když dám part_type_gravity a jako direction zkouším třeba object_index, x, y, nebo název toho objektu.x atd vždy všechny ty částice jdou všechny jedním směrem. Nevíte někdo jak na to? Zkoušel jsem to dát do create i do stepu. Výsledek stejný.

create:

Kód: Vybrat vše

particle_1_sys = part_system_create();
particle_1_emit = part_emitter_create(particle_1_sys);
particle_1 = part_type_create();
part_type_life(particle_1, 14, 14);
part_type_sprite(particle_1, spr_pixel, 1, 0, 1);
part_type_orientation(particle_1, 1, 20, 1, 1, 1);
step:

Kód: Vybrat vše

    part_emitter_region(particle_1_sys, particle_1_emit, x - r, x + r, y - r, y + r, ps_shape_ellipse, ps_distr_gaussian);
    part_emitter_burst(particle_1_sys, particle_1_emit, particle_1, 30);
to r je jen poloměr toho kruhu, ten se zvětšuje.

Re: particle gravitace

Napsal: květen 29, 2019, 9:26 pm
od ipq
U particles je problém ten, že sa nedá u nich kontrolovať pozícia a smer, kde sú a kam idú a taktiež to, že nieje možné(čo je škoda) ich meniť počas toho, keď sú zobrazené, len u tých, čo sa spawnú.

Skôr by som to zmenil tak, že by sa emitter zrušil a nahradil klasickým scriptom, ktorý by sám náhodne spawnoval particles ale počas toho by sa spravila kalkulácia(pozícia a smer), ktorá sa bude aplikovávať na ne a tak meniť smer aby to vyzeralo, že idú k stredobodu ako by ich niečo priťahovalo.

Re: particle gravitace

Napsal: červen 2, 2019, 1:51 pm
od BboyScary
tak zkoušel jsem a dělá to to samé. Nechápu :D dal jsem i to že v jednom objektu se vytváří částice a ty mají gravitaci k druhému objektu. Ten druhý vytváří každý step nové a nové ty objekty s částicemi a i tak jdou všechny stejným směrem. (vím že takhle by mi to hru dost zasekalo ale zkusil jsem)

Re: particle gravitace

Napsal: červen 5, 2019, 1:55 am
od ipq
Keby som v GM robil, tak by som skúsil niečo spraviť a otestovať to ale nakoľko už s GM nerobím, viem to maximálne poradiť len v teoretickej časti a bez scriptu či ukážky.

Ale skúsim znovu...

Všimol som si, že GM podporuje Box2D, čo je fyzikálny engine integrovaný v tom a je tam položka Soft Body Particles, čo som si pozeral v manuálu, možno s toho by sa dalo použiť to ako gravity particles a upraviť to tak aby reagovali na gravitáciu. Ak si hral Angry Birds Space, tak tam bolo tiež vidieť, ako bola upravená fyzika. Objekty gravitačne reagovali len na tie planéty, čo ich priťahovali v závislosti ak boli už v gravitačnom poli.

Druhá možnosť, myslel som to takto:
step:

Kód: Vybrat vše

var nahx,nahy,smer,dlzka;

nahx=x+lenghtdir_x(r-random(r),random(360));
nahy=y+lenghtdir_y(r-random(r),random(360));
smer=point_direction(x,y,nahx,nahy);
dlzka=point_distance(x,y,nahx,nahy);

part_type_direction(particle_1,smer,smer,0,0);
part_type_speed(particle_1,dlzka/14,dlzka/14,-(dlzka/14),0);

part_particles_create(particle_1_sys,nahx,nahy,particle_1,1);
nahx a nahy by mali simulovať ps_shape_ellipse s ps_distr_gaussian ale nieje zaručené, že to tak pôjde nakoľko je to spackané v notepade(tím že v GM už nerobím) a čo sa týka tej 14-tky pri dlzka, to je životnosť, ktorú máš uvedenú v particles v life. V prípade, ak ich chceš viac vykresliť napr. 30, ako to tam vidím, trebalo by dať ten kôd do repeat napr.: repeat(30). Ak chceš aby sa menil smer i spritesu u particles, stačí to tam pridať a dať mu to samé ako u direction.

Re: particle gravitace

Napsal: červen 5, 2019, 10:23 am
od BboyScary
aha díky za radu chápu všechno. Až vyzkouším, dám vědět. Děkuju