sf::FloatRect AnimatedSprite::getLocalBounds(void) const { if(m_numFrames > 0) return getCurrentSprite().getLocalBounds(); else return sf::FloatRect(); }
void Player::draw() { this->DynamicEntity::draw(); int frame = getCurrentSprite().get_current_frame(); float scale = GameManager::getInstance()->getPlayerOptions()->hitBoxScale; float halfComplementScale = (1.0f - scale)*0.5f; _currentOutlines[frame].set_scale( scale, scale ); // Translate 0.125*width and height _currentOutlines[frame].draw( getPosition().x + getCurrentSprite().get_width()*halfComplementScale, getPosition().y + getCurrentSprite().get_height()*halfComplementScale, clan::Colorf::red, GameManager::getInstance()->getCanvas() ); _currentOutlines[frame].set_scale(1.0f, 1.0f); }
sf::FloatRect AnimatedSprite::getGlobalBounds(void) const { if(m_numFrames > 0) return getTransform().transformRect(getCurrentSprite().getGlobalBounds()); else return sf::FloatRect(); }
static void dieMoveToTop() { EntityList *l, *list; Entity *e; self->thinkTime--; if (self->thinkTime <= 0) { switch (self->mental) { case 0: self->target->inUse = FALSE; stopSound(self->target->endX); setEntityAnimation(self, "INTRO"); self->flags &= ~NO_DRAW; addParticleExplosion(self->x + self->w / 2, self->y + self->h / 2); playSoundToMap("sound/common/spell", -1, self->x, self->y, 0); self->thinkTime = 90; self->mental = 1; break; case 1: createAutoDialogBox(_("Azriel"), _("Until we meet again..."), 120); self->mental = 2; self->thinkTime = 180; break; default: list = createPixelsFromSprite(getCurrentSprite(self)); for (l=list->next;l!=NULL;l=l->next) { e = l->entity; e->dirX = prand() % 30 * (e->x < self->x + self->w / 2 ? -1 : 1); e->dirY = prand() % 30 * (e->y < self->y + self->h / 2 ? -1 : 1); e->dirX /= 10; e->dirY /= 10; e->thinkTime = 180 + prand() % 180; } self->flags |= NO_DRAW; freeEntityList(list); self->thinkTime = 120; self->action = &dieWait; playSoundToMap("sound/boss/azriel/azriel_die", BOSS_CHANNEL, self->x, self->y, 0); break; } } }