-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathBloodEmitter.cpp
More file actions
33 lines (27 loc) · 888 Bytes
/
BloodEmitter.cpp
File metadata and controls
33 lines (27 loc) · 888 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "BloodEmitter.h"
template <> BloodEmitter *Singleton<BloodEmitter>::ms_Singleton = 0;
BloodEmitter::BloodEmitter() { startemit = false; }
BloodEmitter::~BloodEmitter() {}
void BloodEmitter::init() {
SceneManager *mSceneMgr = global::getSingleton().getSceneManager();
bSys = mSceneMgr->createParticleSystem("BloodEmit", "blood01");
bNode = mSceneMgr->getRootSceneNode()->createChildSceneNode("bloodEmitter");
bNode->attachObject(bSys);
bSys->setVisible(false);
}
void BloodEmitter::emitBlood(Vector3 pos, Vector3 size) {
bNode->setPosition(pos);
bNode->setScale(size);
bSys->setVisible(true);
startemit = true;
timePos = BLOOD_DURATION;
}
void BloodEmitter::upd(const Ogre::FrameEvent &evt) {
if (startemit) {
timePos -= evt.timeSinceLastFrame * TIME_SHIFT;
if (timePos < 0) {
startemit = false;
bSys->setVisible(false);
}
}
}