|
Re: Geschwindigkeit von Partikeln
[Re: Ayumi]
#280918
07/24/09 16:49
07/24/09 16:49
|
Joined: Sep 2006
Posts: 99 BS, Germany
Storm_Mortis
Junior Member
|
Junior Member
Joined: Sep 2006
Posts: 99
BS, Germany
|
hi, also du kannst dene particle einfach über die velocety bewegen:
p.vel_x = 10 - random(20); p.vel_y = 10 - random(20); p.vel_z = 10 - random(20);
oder an eiener entity ausgerichtet, zb dem erzeuger (you):
p.vel_x = (10+random(5))*cos(you.pan); p.vel_y = (10+random(5))*sin(you.pan); p.vel_z = (10+random(5))*sin(you.tilt); (kann sein das ich die berechnung gerade aussem kopf bissel verhauen habe...)
oder du orientierst dich am handbuch:
// Hilfsfunktion: setzt den Vektor auf zufällige Richtung und Länge function vec_randomize (var* vec, var range) { vec[0] = random(1) - 0.5; vec[1] = random(1) - 0.5; vec[2] = random(1) - 0.5; vec_normalize(vec,random(range)); }
// Hilfsfunktion: blendet einen Partikel aus function part_alphafade(PARTICLE *p) { p.alpha -= 2*time_step; if (p.alpha <= 0) p.lifespan = 0; }
// Partikelfunktion: generiert eine verblassende Explosion in vel-Richtung function effect_explo(PARTICLE *p) { var temp[3]; vec_randomize(temp,10); vec_add (p.vel_x, temp); p.alpha = 25 + random(25); p.bmap = scatter_map; p.flags |= (BRIGHT | MOVE); p.event = part_alphafade; // wechsle zu einer kürzeren, schnelleren Funktion }
... vec_scale(normal,10); // produziere eine Explosion in Richtung der Normalen effect(effect_explo,1000,my.x,normal);
Last edited by Storm_Mortis; 07/24/09 16:50.
it found a voice ... now it needs a body
|
|
|
Re: Geschwindigkeit von Partikeln
[Re: Storm_Mortis]
#280934
07/24/09 18:01
07/24/09 18:01
|
Joined: Oct 2008
Posts: 683 Germany
Ayumi
OP
User
|
OP
User
Joined: Oct 2008
Posts: 683
Germany
|
Naja ich moechte einfach nur schwebende Partikel an beliebigen stellen im Raum erstellen, die dort dann frei schweben und sich langsam bewegen... (so 20 Partikel auf 800 Quants als bsp) und ihr alpha wert langsam verlieren und wieder herstellen... und das ganze ohne Modell...da alle Partikel sich random bewegen. Hier ein bsp: 
|
|
|
Re: Geschwindigkeit von Partikeln
[Re: Ayumi]
#280937
07/24/09 18:04
07/24/09 18:04
|
Joined: Sep 2006
Posts: 99 BS, Germany
Storm_Mortis
Junior Member
|
Junior Member
Joined: Sep 2006
Posts: 99
BS, Germany
|
aso, na sag das docj gleich^^ ich schreibe dir mal den code dazu, musst dann sagen ob er dier gefällt... dauert bissel, aber nicht zu lange
it found a voice ... now it needs a body
|
|
|
Re: Geschwindigkeit von Partikeln
[Re: Storm_Mortis]
#280939
07/24/09 18:17
07/24/09 18:17
|
Joined: Oct 2008
Posts: 683 Germany
Ayumi
OP
User
|
OP
User
Joined: Oct 2008
Posts: 683
Germany
|
Das ist aber nett:) danke schoen
Last edited by Ayumi; 07/24/09 18:17.
|
|
|
Re: Geschwindigkeit von Partikeln
[Re: Ayumi]
#280949
07/24/09 19:06
07/24/09 19:06
|
Joined: Sep 2006
Posts: 99 BS, Germany
Storm_Mortis
Junior Member
|
Junior Member
Joined: Sep 2006
Posts: 99
BS, Germany
|
so, habe dir das ding fertig gemacht^^ ich habe dir ein fertiges script zum includen geschrieben, also einfach in ne leere datei kopieren und speichern also, es sind 2 actionen die wichtig sind, die 1. kannst du nutzen wenn es überall solche glühdinger gibt, die erstelld die teile in einem einstellbaren bereich (skill1) um den player herum! die 2. kannst du nutzen wenn es nur in besteimmten bereichen deines levels solche glühdinger gibt (nur inenr höhle oder übern teich oder so) auch hier ist dier bereich um die emmiter entity einstellbar (skill1) und hier ist der code (alle weiteren erklärungen sind dadrin!); //random glows by Morten Storm AKA Storm_Mortis BMAP* glow_map = "glow.dds";//setze hier deine glow textur ein 16x16 sollte reichen var glow_move_speed = 1;//hier ändern für andere bewegungsgeschwindigkeit var glow_fade_speed = 5;//hier ändern für andere fadegeschwindigkeit
ENTITY* Ziel;
function glow_fade(PARTICLE *p) { if(p.alpha <= 100 && p.skill_a == 0) { p.alpha += glow_fade_speed*time_step; } if(p.alpha >= 100){p.skill_a = 1;} if(p.alpha >= 1 && p.skill_a == 1) { p.alpha -= glow_fade_speed*time_step; } if(p.alpha <= 1 && p.skill_a == 1){p.lifespan = 0;} }
function glow(PARTICLE *p) { p.vel_x = 1-random(2)*glow_move_speed; p.vel_y = 1-random(2)*glow_move_speed; p.vel_z = 1-random(2)*glow_move_speed; p.alpha = 0; p.skill_a = 0; p.size = 10+random(5); p.bmap = glow_map; p.flags |= (BRIGHT | MOVE | TRANSLUCENT); p.event = glow_fade; }
action glow_emitter1()//erstelle glows immer um den spieler herum { VECTOR glow_pos; if(!my.skill1){my.skill1 = 600;}//ändern für anderen erstellbereich(auch in wed machbar) set(my,PASSABLE|INVISIBLE); while(1) { glow_pos.x = Ziel.x - random(my.skill1) + my.skill1/2;//"Ziel" durch deinen player ersetzten glow_pos.y = Ziel.y - random(my.skill1) + my.skill1/2;//"Ziel" durch deinen player ersetzten glow_pos.z = Ziel.z - random(my.skill1) + my.skill1/2;//"Ziel" durch deinen player ersetzten effect(glow,1,glow_pos,nullvector); wait(-0.1);// höher für weniger glows und umgekehrt } }
action glow_emitter2()//erstelle glows immer en einer stelle wenn spieler nahe ist { VECTOR glow_pos; set(my,PASSABLE|INVISIBLE); if(!my.skill1){my.skill1 = 600;}//ändern für anderen erstellbereich(auch in wed machbar) if(!my.skill2){my.skill2 = 500;}//ändern für andere erstellentfehrnung(auch in wed machbar) while(1) { if(vec_dist(my.x,Ziel.x) <= my.skill2)//"Ziel" durch deinen player ersetzten { glow_pos.x = Ziel.x - random(my.skill1) + my.skill1/2;//"Ziel" durch deinen player ersetzten glow_pos.y = Ziel.y - random(my.skill1) + my.skill1/2;//"Ziel" durch deinen player ersetzten glow_pos.z = Ziel.z - random(my.skill1) + my.skill1/2;//"Ziel" durch deinen player ersetzten effect(glow,1,glow_pos,nullvector); wait(-0.1); // höher für weniger glows und umgekehrt } wait(1); } }
achso, bei mir haben partikel nen bug inner engine und ich sehe sie nicht richtig groß, also musst du die gräße (p.size) noch anpassen! sollte was nicht bei dir gehen oder du nicht wissen wie was einzubinden ist, frag einfach! viel spass damit Mortis
it found a voice ... now it needs a body
|
|
|
Re: Geschwindigkeit von Partikeln
[Re: Ayumi]
#280965
07/24/09 19:40
07/24/09 19:40
|
Joined: Sep 2006
Posts: 99 BS, Germany
Storm_Mortis
Junior Member
|
Junior Member
Joined: Sep 2006
Posts: 99
BS, Germany
|
einfach das "Ziel" durch deinen playerpointer ersetzen. im normalfall ist das player. also so:
glow_pos.x = player.x - ...
edit: gerad nochmal in deien code geguckt...
glow_pos.x = sora.x - ...
Last edited by Storm_Mortis; 07/24/09 19:42.
it found a voice ... now it needs a body
|
|
|
Re: Geschwindigkeit von Partikeln
[Re: Ayumi]
#280968
07/24/09 19:47
07/24/09 19:47
|
Joined: Sep 2006
Posts: 99 BS, Germany
Storm_Mortis
Junior Member
|
Junior Member
Joined: Sep 2006
Posts: 99
BS, Germany
|
hm, also ich habe ihn zuvor erfolgraich getestet....
haste mal mit der größe gespielt? und overlay brauchste nicht, das hilft dabei gar nichts!
hast du die erstellentfehrnung mal erhöht, einfach in wed den skill 2 der entity mit der action mal auf 2000 setzen.
it found a voice ... now it needs a body
|
|
|
|