[532] | 1 | === ParticleEffects === |
---|
| 2 | |
---|
| 3 | == Files == |
---|
| 4 | Benötigte Files: ParticleInterface.h, ParticleInterface.cc |
---|
| 5 | Benötigte Resourcen: alle particle-Scripts und das material-Script |
---|
| 6 | |
---|
| 7 | == Code == |
---|
| 8 | |
---|
| 9 | #include "ParticleInterface.h" |
---|
| 10 | |
---|
| 11 | //Definiere SceneNode particleNode mit einer geeigneten Entity z.B. Schiff |
---|
| 12 | |
---|
| 13 | //Effekt w für die Laser |
---|
| 14 | particle::ParticleInterface *w = new particle::ParticleInterface(mSceneMgr,"schuss","Orxonox/schuss");; |
---|
| 15 | |
---|
| 16 | //Effekt e für die Triebwerke |
---|
| 17 | particle::ParticleInterface *e = new particle::ParticleInterface(mSceneMgr,"engine","Orxonox/treibwerk");; |
---|
| 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 | |
---|
| 25 | //Fügt einen weiteren Laser hinzu und setzt die beiden an |
---|
| 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 | |
---|
| 37 | //Anfügen der PartikelEffekte an die SceneNode |
---|
| 38 | w->addToSceneNode(particleNode); |
---|
| 39 | e->addToSceneNode(particleNode); |
---|
| 40 | |
---|
| 41 | |
---|
| 42 | == Dynamische Änderungen == |
---|
| 43 | |
---|
| 44 | //Verändert die Geschwindigkeit der Partikel |
---|
| 45 | w->setVelocity(w->getVelocity()+0.05); |
---|
| 46 | w->setVelocity(w->getVelocity()-0.05); |
---|
| 47 | |
---|
| 48 | //Verändert die Distanz, bis wo die Partikel zu sehen sind |
---|
| 49 | w->setDistance(w->getDistance()+0.1); |
---|
| 50 | w->setDistance(w->getDistance()-0.1); |
---|
| 51 | |
---|
| 52 | //Ändert von Partikel erzeugen auf gestoppt oder umgekehrt |
---|
| 53 | w->switchEnable(); |
---|