sf::FloatRect AnimatedSprite::getLocalBounds(void) const
{
	if(m_numFrames > 0)
		return getCurrentSprite().getLocalBounds();
	else
		return sf::FloatRect();
}
Esempio n. 2
0
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();
}
Esempio n. 4
0
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;
		}
	}
}