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(); |
---|