[532] | 1 | === ParticleEffects === |
---|
| 2 | |
---|
| 3 | == Files == |
---|
[535] | 4 | Ben�tigte Files: ParticleInterface.h, ParticleInterface.cc |
---|
| 5 | Ben�tigte Resourcen: alle particle-Scripts und das material-Script |
---|
[532] | 6 | |
---|
| 7 | == Code == |
---|
| 8 | |
---|
| 9 | #include "ParticleInterface.h" |
---|
| 10 | |
---|
| 11 | //Definiere SceneNode particleNode mit einer geeigneten Entity z.B. Schiff |
---|
| 12 | |
---|
[535] | 13 | //Effekt w f�r die Laser |
---|
| 14 | particle::ParticleInterface *w = new particle::ParticleInterface(mSceneMgr,"schuss","Orxonox/schuss"); |
---|
[532] | 15 | |
---|
[535] | 16 | //Effekt e f�r die Triebwerke |
---|
| 17 | particle::ParticleInterface *e = new particle::ParticleInterface(mSceneMgr,"engine","Orxonox/treibwerk"); |
---|
[532] | 18 | |
---|
| 19 | //Einstellen der Parameter |
---|
| 20 | |
---|
| 21 | //Macht, dass sich die Parameter mit der SceneNode mitbewegen |
---|
| 22 | w->particleSystem_->setParameter("local_space","true"); |
---|
| 23 | e->particleSystem_->setParameter("local_space","true"); |
---|
| 24 | |
---|
[535] | 25 | //F�gt einen weiteren Laser hinzu und setzt die beiden an |
---|
[532] | 26 | //zwei verschiedene Positionen und setzt die Richtung richtig |
---|
| 27 | w->newEmitter(); |
---|
| 28 | w->setDirection(Vector3(0,0,1)); |
---|
| 29 | w->setPositionOfEmitter(0, Vector3(10,10,0)); |
---|
| 30 | w->setPositionOfEmitter(1, Vector3(-10,10,0)); |
---|
| 31 | |
---|
| 32 | //Platziert das Triebwerk und gibt die Ausstossrichtung an |
---|
| 33 | e->setPositionOfEmitter(0, Vector3(0,0,-10)); |
---|
| 34 | e->setDirection(Vector3(0,0,-1)); |
---|
| 35 | |
---|
| 36 | |
---|
[535] | 37 | //Anf�gen der PartikelEffekte an die SceneNode |
---|
[532] | 38 | w->addToSceneNode(particleNode); |
---|
| 39 | e->addToSceneNode(particleNode); |
---|
| 40 | |
---|
| 41 | |
---|
[535] | 42 | == Dynamische �nderungen == |
---|
[532] | 43 | |
---|
[535] | 44 | //Ver�ndert die Geschwindigkeit der Partikel |
---|
[532] | 45 | w->setVelocity(w->getVelocity()+0.05); |
---|
| 46 | w->setVelocity(w->getVelocity()-0.05); |
---|
| 47 | |
---|
[535] | 48 | //Ver�ndert die Distanz, bis wo die Partikel zu sehen sind |
---|
[532] | 49 | w->setDistance(w->getDistance()+0.1); |
---|
| 50 | w->setDistance(w->getDistance()-0.1); |
---|
| 51 | |
---|
[535] | 52 | //�ndert von Partikel erzeugen auf gestoppt oder umgekehrt |
---|
[532] | 53 | w->switchEnable(); |
---|