Ejemplo n.º 1
0
void Snake::hitByBullet(std::vector<SnakeNode>::iterator nodeHit)
{
	if (fireClock_.getElapsedTime() - lastTimeShot_ >= TakeDamageDelay)
	{
		life_ -= 10;
		lastTimeShot_ = fireClock_.getElapsedTime();
		particleSystem_.addEmitter(createEmitter(nodeHit->getPosition()), sf::milliseconds(200));
	}
}
Ejemplo n.º 2
0
void resetEmitters(void)
{

    // called on engine startup, and between states. preps emitters for first use
    int i;
    for (i = 0; i < MAX_EMITTERS; ++i) {
        createEmitter(&emitter[i]);
    }

}
Ejemplo n.º 3
0
CEvent::CEvent(CEntity &owner, const tinyxml2::XMLElement *pElement)
  : m_sID(Attribute(pElement, "id", "unset id")),
    m_eRepeatType(REPEAT_TYPES_MAP.parseString(Attribute(pElement, "repeat", "none"))),
    m_fRepeatTime(RealAttribute(pElement, "time", 0)),
    m_fTimer(0),
    m_Owner(owner),
    m_bStarted(BoolAttribute(pElement, "started", false)) {

  for (const tinyxml2::XMLElement *pChildElem = pElement->FirstChildElement(); pChildElem; pChildElem = pChildElem->NextSiblingElement()) {
    if (strcmp(pChildElem->Value(), "emitter") == 0) {
      m_lEmitter.push_back(createEmitter(pChildElem, *this));
    }
    else if (strcmp(pChildElem->Value(), "action") == 0) {
      m_lActions.push_back(createAction(pChildElem, *this));
    }
    else {
      throw Ogre::Exception(0, "Unknown event child '" + std::string(pChildElem->Value()) + "'", __FILE__);
    }
  }
}
Ejemplo n.º 4
0
struct EMITTER *getNewEmitter(float x, float y, float duration, float frequency, int number, void (*executeEmitterFunction)(float x, float y))
{

    /* make new particle emitter - null if we can't get one */
    struct EMITTER *e;
    int i;
    for (i = 0; i < MAX_EMITTERS; ++i) {
        if (!emitter[i].executeEmitterFunction) {
            e = &emitter[i];
            createEmitter(e);
            e->x = x;
            e->y = y;
            e->__internal__duration = (duration * 60);
            e->__internal__frequency = (frequency * 60);
            e->number = number;
            e->executeEmitterFunction = executeEmitterFunction;
            return e;
        }
    }
    return NULL;

}