void UnstableTile::loadAnimation(int skinNr) { m_isCollidable = true; Animation* idleAnimation = new Animation(sf::seconds(10.f)); idleAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_tile_unstable)); idleAnimation->addFrame(sf::IntRect(BORDER, BORDER + ((skinNr - 1) * (TILE_SIZE + 2 * BORDER)), TILE_SIZE, TILE_SIZE)); addAnimation(GameObjectState::Idle, idleAnimation); Animation* tremblingAnimation = new Animation(sf::seconds(0.1f)); tremblingAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_tile_unstable)); tremblingAnimation->addFrame(sf::IntRect(BORDER + 1 * (2 * BORDER + TILE_SIZE), BORDER + ((skinNr - 1) * (TILE_SIZE + 2 * BORDER)), TILE_SIZE, TILE_SIZE)); tremblingAnimation->addFrame(sf::IntRect(BORDER + 2 * (2 * BORDER + TILE_SIZE), BORDER + ((skinNr - 1) * (TILE_SIZE + 2 * BORDER)), TILE_SIZE, TILE_SIZE)); addAnimation(GameObjectState::Trembling, tremblingAnimation); Animation* crumblingAnimation = new Animation(); crumblingAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_tile_destructible)); for (int i = 1; i < 5; i++) { crumblingAnimation->addFrame(sf::IntRect( BORDER + i * (2 * BORDER + TILE_SIZE), BORDER, TILE_SIZE, TILE_SIZE)); } addAnimation(GameObjectState::Crumbling, crumblingAnimation); // initial values m_state = GameObjectState::Idle; setCurrentAnimation(getAnimation(GameObjectState::Idle), false); playCurrentAnimation(true); }
void FlashSpell::load(const SpellData& data, LevelMovableGameObject* mob, const sf::Vector2f& target) { setSpriteOffset(sf::Vector2f(-10.f, 0.f)); m_mob = mob; Animation* spellAnimation = new Animation(sf::milliseconds(200)); spellAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_spell_flash)); spellAnimation->addFrame(sf::IntRect(0, 0, 120, 120)); spellAnimation->addFrame(sf::IntRect(120, 0, 120, 120)); addAnimation(GameObjectState::Idle, spellAnimation); // initial values setCurrentAnimation(getAnimation(GameObjectState::Idle), false); playCurrentAnimation(true); Spell::load(data, mob, target); m_isFlashingRight = mob->isFacingRight(); m_flashingTime = FLASHING_TIME; m_flashDuration = FLASH_DURATION; sf::Vector2f position(m_mob->getPosition()); position.x += (m_mob->getBoundingBox()->width / 2.f); position.y += m_mob->getBoundingBox()->height - 20; position.x = m_isFlashingRight ? position.x - data.range : position.x + data.range; loadParticleSystem(); m_posGenerator->center = position; }
void LevelMainCharacter::load() { setBoundingBox(sf::FloatRect(0.f, 0.f, 30.f, 100.f)); setSpriteOffset(sf::Vector2f(-25.f, -20.f)); Animation walkingAnimation; walkingAnimation.setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_mainChar)); walkingAnimation.addFrame(sf::IntRect(0, 0, 80, 120)); walkingAnimation.addFrame(sf::IntRect(80, 0, 80, 120)); walkingAnimation.addFrame(sf::IntRect(160, 0, 80, 120)); walkingAnimation.addFrame(sf::IntRect(240, 0, 80, 120)); walkingAnimation.addFrame(sf::IntRect(320, 0, 80, 120)); walkingAnimation.addFrame(sf::IntRect(400, 0, 80, 120)); walkingAnimation.addFrame(sf::IntRect(480, 0, 80, 120)); walkingAnimation.addFrame(sf::IntRect(560, 0, 80, 120)); addAnimation(GameObjectState::Walking, walkingAnimation); Animation idleAnimation; idleAnimation.setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_mainChar)); idleAnimation.addFrame(sf::IntRect(640, 0, 80, 120)); addAnimation(GameObjectState::Idle, idleAnimation); Animation jumpingAnimation; jumpingAnimation.setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_mainChar)); jumpingAnimation.addFrame(sf::IntRect(720, 0, 80, 120)); addAnimation(GameObjectState::Jumping, jumpingAnimation); Animation fightingAnimation; fightingAnimation.setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_mainChar)); fightingAnimation.addFrame(sf::IntRect(800, 0, 80, 120)); fightingAnimation.addFrame(sf::IntRect(880, 0, 80, 120)); fightingAnimation.addFrame(sf::IntRect(960, 0, 80, 120)); fightingAnimation.addFrame(sf::IntRect(1040, 0, 80, 120)); fightingAnimation.addFrame(sf::IntRect(1040, 0, 80, 120)); addAnimation(GameObjectState::Fighting, fightingAnimation); Animation deadAnimation; deadAnimation.setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_mainChar)); deadAnimation.addFrame(sf::IntRect(1120, 0, 80, 120)); addAnimation(GameObjectState::Dead, deadAnimation); setFrameTime(sf::seconds(0.07f)); // initial values m_state = GameObjectState::Idle; m_isFacingRight = true; setCurrentAnimation(getAnimation(m_state), !m_isFacingRight); playCurrentAnimation(true); setDebugBoundingBox(sf::Color::White); }
void CookingTile::loadAnimation(int skinNr) { int textureHeight = 2 * TILE_SIZE; Animation* burningAnimation = new Animation(sf::seconds(0.15f)); burningAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_tile_cooking)); for (int i = 0; i < 4; ++i) { burningAnimation->addFrame(sf::IntRect(TILE_SIZE * i, (skinNr - 1) * textureHeight, TILE_SIZE, textureHeight)); } addAnimation(GameObjectState::Burning, burningAnimation); // initial values setState(GameObjectState::Burning); playCurrentAnimation(true); }
void FireRatEnemy::load() { setBoundingBox(sf::FloatRect(0.f, 0.f, 40.f, 30.f)); setSpriteOffset(sf::Vector2f(-5.f, -20.f)); Animation walkingAnimation; walkingAnimation.setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_enemy_firerat)); walkingAnimation.addFrame(sf::IntRect(0, 0, 50, 50)); walkingAnimation.addFrame(sf::IntRect(50, 0, 50, 50)); walkingAnimation.addFrame(sf::IntRect(100, 0, 50, 50)); walkingAnimation.addFrame(sf::IntRect(50, 0, 50, 50)); addAnimation(GameObjectState::Walking, walkingAnimation); Animation idleAnimation; idleAnimation.setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_enemy_firerat)); idleAnimation.addFrame(sf::IntRect(50, 0, 50, 50)); idleAnimation.addFrame(sf::IntRect(300, 0, 50, 50)); addAnimation(GameObjectState::Idle, idleAnimation); Animation jumpingAnimation; jumpingAnimation.setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_enemy_firerat)); jumpingAnimation.addFrame(sf::IntRect(150, 0, 50, 50)); addAnimation(GameObjectState::Jumping, jumpingAnimation); Animation fightingAnimation; fightingAnimation.setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_enemy_firerat)); fightingAnimation.addFrame(sf::IntRect(200, 0, 50, 50)); fightingAnimation.addFrame(sf::IntRect(250, 0, 50, 50)); addAnimation(GameObjectState::Fighting, fightingAnimation); Animation deadAnimation; deadAnimation.setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_enemy_firerat)); deadAnimation.addFrame(sf::IntRect(350, 0, 50, 50)); addAnimation(GameObjectState::Dead, deadAnimation); setFrameTime(sf::seconds(0.08f)); // initial values m_state = GameObjectState::Idle; m_isFacingRight = true; setCurrentAnimation(getAnimation(m_state), !m_isFacingRight); playCurrentAnimation(true); }
void FireBasket::load() { setBoundingBox(sf::FloatRect(0, 0, 192, 800)); Animation* idleAnimation = new Animation(sf::seconds(0.08f)); idleAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_screen_splash_fireanimation)); for (int i = 0; i < 38; i++) { idleAnimation->addFrame(sf::IntRect(192 * i, 0, 192, 800)); } addAnimation(GameObjectState::Idle, idleAnimation); // initial values setCurrentAnimation(getAnimation(GameObjectState::Idle), false); playCurrentAnimation(true); m_animatedSprite.setScale(0.86f, 0.86f); }
void TelekinesisSpell::load(const SpellData& bean, LevelMovableGameObject* mob, const sf::Vector2f& target) { setSpriteOffset(sf::Vector2f(-10.f, -10.f)); Animation* spellAnimation = new Animation(sf::seconds(10.f)); spellAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_spell_telekinesis)); spellAnimation->addFrame(sf::IntRect(0, 0, 40, 30)); addAnimation(GameObjectState::Idle, spellAnimation); // initial values setState(GameObjectState::Idle); playCurrentAnimation(true); Spell::load(bean, mob, target); loadParticleSystem(); }
void LevelMainCharacter::loadAnimation() { setBoundingBox(sf::FloatRect(0.f, 0.f, 30.f, 90.f)); setSpriteOffset(sf::Vector2f(-25.f, -30.f)); Animation* walkingAnimation = new Animation(); walkingAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_mainChar)); for (int i = 0; i < 8; ++i) { walkingAnimation->addFrame(sf::IntRect(i * 80, 0, 80, 120)); } addAnimation(GameObjectState::Walking, walkingAnimation); Animation* idleAnimation = new Animation(); idleAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_mainChar)); idleAnimation->addFrame(sf::IntRect(640, 0, 80, 120)); addAnimation(GameObjectState::Idle, idleAnimation); Animation* jumpingAnimation = new Animation(); jumpingAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_mainChar)); jumpingAnimation->addFrame(sf::IntRect(720, 0, 80, 120)); addAnimation(GameObjectState::Jumping, jumpingAnimation); Animation* fightingAnimation = new Animation(sf::milliseconds(70)); fightingAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_mainChar)); for (int i = 10; i < 14; ++i) { fightingAnimation->addFrame(sf::IntRect(i * 80, 0, 80, 120)); } // duplicate last frame because of level equipment fightingAnimation->addFrame(sf::IntRect(1040, 0, 80, 120)); addAnimation(GameObjectState::Fighting, fightingAnimation); Animation* deadAnimation = new Animation(); deadAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_mainChar)); deadAnimation->addFrame(sf::IntRect(1120, 0, 80, 120)); addAnimation(GameObjectState::Dead, deadAnimation); // initial values setState(GameObjectState::Idle); playCurrentAnimation(true); setDebugBoundingBox(COLOR_WHITE); }
void GargoyleEnemy::loadAnimation(int skinNr) { m_animations.clear(); setBoundingBox(sf::FloatRect(0.f, 0.f, 50.f, 80.f)); setSpriteOffset(sf::Vector2f(-127.f, -42.f)); Animation* flyingAnimation = new Animation(); flyingAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_enemy_gargoyle)); for (int i = 0; i < 8; i++) { flyingAnimation->addFrame(sf::IntRect(195 * i, 0, 195, 180)); } addAnimation(GameObjectState::Flying, flyingAnimation); Animation* idleAnimation = new Animation(); idleAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_enemy_gargoyle)); for (int i = 0; i < 8; i++) { idleAnimation->addFrame(sf::IntRect(195 * i, 0, 195, 180)); } addAnimation(GameObjectState::Idle, idleAnimation); // TODO: create other animations Animation* fightingAnimation = new Animation(); fightingAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_enemy_gargoyle)); for (int i = 0; i < 3; i++) { fightingAnimation->addFrame(sf::IntRect(195 * i, 180, 195, 180)); } fightingAnimation->setLooped(false); addAnimation(GameObjectState::Fighting, fightingAnimation); Animation* deadAnimation = new Animation(); deadAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_enemy_gargoyle)); for (int i = 0; i < 10; i++) { deadAnimation->addFrame(sf::IntRect(195 * i, 360, 195, 180)); } deadAnimation->setLooped(false); addAnimation(GameObjectState::Dead, deadAnimation); // initial values setState(GameObjectState::Idle); playCurrentAnimation(true); }
void AureolaSpell::load(const SpellData& bean, LevelMovableGameObject* mob, const sf::Vector2f& target) { setSpriteOffset(sf::Vector2f(-10.f, -10.f)); Animation* spellAnimation = new Animation(sf::seconds(0.3f)); spellAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_spell_aureola)); spellAnimation->addFrame(sf::IntRect(0, 0, 40, 40)); spellAnimation->addFrame(sf::IntRect(40, 0, 40, 40)); addAnimation(GameObjectState::Idle, spellAnimation); // initial values setCurrentAnimation(getAnimation(GameObjectState::Idle), false); playCurrentAnimation(true); m_rangeLeft = bean.range; Spell::load(bean, mob, target); }
void FireBallSpell::load(const SpellData& data, LevelMovableGameObject* mob, const sf::Vector2f& target) { setSpriteOffset(sf::Vector2f(-20.f, -20.f)); Animation* spellAnimation = new Animation(); spellAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_spell_fireball)); for (int i = 0; i < 4; ++i) { spellAnimation->addFrame(sf::IntRect(i * 50, data.skinNr * 50, 50, 50)); } addAnimation(GameObjectState::Idle, spellAnimation); // initial values setCurrentAnimation(getAnimation(GameObjectState::Idle), false); playCurrentAnimation(true); Spell::load(data, mob, target); g_resourceManager->playSound(m_sound, ResourceID::Sound_spell_fireball); }
void SkeletonEnemy::loadAnimation() { setBoundingBox(sf::FloatRect(0.f, 0.f, 40.f, 135.f)); setSpriteOffset(sf::Vector2f(-35.f, -15.f)); Animation* walkingAnimation = new Animation(sf::seconds(0.1f)); walkingAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_enemy_skeleton)); for (int i = 0; i < 8; i++) { walkingAnimation->addFrame(sf::IntRect(i * 150, 0, 150, 150)); } addAnimation(GameObjectState::Walking, walkingAnimation); Animation* jumpingAnimation = new Animation(); jumpingAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_enemy_skeleton)); jumpingAnimation->addFrame(sf::IntRect(0, 0, 150, 150)); addAnimation(GameObjectState::Jumping, jumpingAnimation); Animation* idleAnimation = new Animation(); idleAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_enemy_skeleton)); idleAnimation->addFrame(sf::IntRect(00, 150, 150, 150)); addAnimation(GameObjectState::Idle, idleAnimation); Animation* fightingAnimation = new Animation(sf::seconds(0.05f)); fightingAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_enemy_skeleton)); for (int i = 0; i < 8; i++) { fightingAnimation->addFrame(sf::IntRect(i * 150, 300, 150, 150)); } addAnimation(GameObjectState::Fighting, fightingAnimation); Animation* deadAnimation = new Animation(); deadAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_enemy_skeleton)); for (int i = 0; i < 2; i++) { deadAnimation->addFrame(sf::IntRect(i * 150, 450, 150, 150)); } deadAnimation->setLooped(false); addAnimation(GameObjectState::Dead, deadAnimation); // initial values setState(GameObjectState::Idle); playCurrentAnimation(true); }
void FireRatEnemy::loadAnimation() { setBoundingBox(sf::FloatRect(0.f, 0.f, 40.f, 30.f)); setSpriteOffset(sf::Vector2f(-5.f, -20.f)); Animation* walkingAnimation = new Animation(); walkingAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_enemy_firerat)); walkingAnimation->addFrame(sf::IntRect(0, 0, 50, 50)); walkingAnimation->addFrame(sf::IntRect(50, 0, 50, 50)); walkingAnimation->addFrame(sf::IntRect(100, 0, 50, 50)); walkingAnimation->addFrame(sf::IntRect(50, 0, 50, 50)); addAnimation(GameObjectState::Walking, walkingAnimation); Animation* idleAnimation = new Animation(); idleAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_enemy_firerat)); idleAnimation->addFrame(sf::IntRect(50, 0, 50, 50)); idleAnimation->addFrame(sf::IntRect(300, 0, 50, 50)); addAnimation(GameObjectState::Idle, idleAnimation); Animation* jumpingAnimation = new Animation(); jumpingAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_enemy_firerat)); jumpingAnimation->addFrame(sf::IntRect(150, 0, 50, 50)); addAnimation(GameObjectState::Jumping, jumpingAnimation); Animation* fightingAnimation = new Animation(sf::seconds(0.08f)); fightingAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_enemy_firerat)); fightingAnimation->addFrame(sf::IntRect(200, 0, 50, 50)); fightingAnimation->addFrame(sf::IntRect(250, 0, 50, 50)); addAnimation(GameObjectState::Fighting, fightingAnimation); Animation* deadAnimation = new Animation(); deadAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_enemy_firerat)); deadAnimation->addFrame(sf::IntRect(350, 0, 50, 50)); addAnimation(GameObjectState::Dead, deadAnimation); // initial values setState(GameObjectState::Idle); playCurrentAnimation(true); }
void FearSpell::load(const SpellBean& bean, LevelMovableGameObject* mob, const sf::Vector2f& target) { setSpriteOffset(sf::Vector2f(-10.f, -10.f)); Animation spellAnimation; spellAnimation.setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_spell_fear)); spellAnimation.addFrame(sf::IntRect(0, 0, 30, 30)); spellAnimation.addFrame(sf::IntRect(30, 0, 30, 30)); addAnimation(GameObjectState::Idle, spellAnimation); setFrameTime(sf::seconds(0.1f)); // initial values setCurrentAnimation(getAnimation(GameObjectState::Idle), false); playCurrentAnimation(true); Spell::load(bean, mob, target); }
void LeapOfFaithSpell::load(const SpellData& bean, LevelMovableGameObject* mob, const sf::Vector2f& target) { m_mob = mob; Animation* spellAnimation = new Animation(); spellAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_spell_leapoffaith)); spellAnimation->addFrame(sf::IntRect(0, 0, 80, 120)); addAnimation(GameObjectState::Idle, spellAnimation); m_isFacingRight = m_mob->isFacingRight(); setCurrentAnimation(getAnimation(GameObjectState::Idle), !m_isFacingRight); playCurrentAnimation(false); Spell::load(bean, mob, target); m_mob->getMovingBehavior()->setGravityScale(m_gravityScale); loadParticleSystem(); LightData lightData(LightData( sf::Vector2f(getBoundingBox()->width * 0.5f, getBoundingBox()->height * 0.5f), sf::Vector2f(100.f, 100.f), 0.2f)); addComponent(new LightComponent(lightData, this)); }
void ModifierTile::loadAnimation(int skinNr) { m_isCollidable = false; sf::IntRect rect = sf::IntRect((m_modifier.level - 1) * 50, 50, 50, 50); m_animatedSprite.setColor(SpellModifier::getSpellModifierColor(m_modifier.type)); Animation* idleAnimation = new Animation(); idleAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_gems)); idleAnimation->addFrame(rect); addAnimation(GameObjectState::Idle, idleAnimation); Animation* activatedAnimation = new Animation(sf::seconds(10.f)); activatedAnimation->setSpriteSheet(g_resourceManager->getTexture(ResourceID::Texture_gems)); activatedAnimation->addFrame(sf::IntRect()); // idle addAnimation(GameObjectState::Active, activatedAnimation); // initial values m_state = GameObjectState::Idle; setCurrentAnimation(getAnimation(m_state), false); playCurrentAnimation(true); }