void World::initialHealthDisplay() { std::unique_ptr<TextNode> healthDisplay(new TextNode(mFonts, "")); mHealthDisplay = healthDisplay.get(); mSceneLayers[Space]->attachChild(std::move(healthDisplay)); updateHealthDisplay(); }
Aircraft::Aircraft(Type type, const TextureHolder& textures, const FontHolder& fonts) : Entity(Table[type].hitpoints) , mType(type), mSprite(textures.get(Table[mType].texture), Table[mType].textRect),mHealthDisplay(nullptr) , mTravelledDistance(0.f), mDirectionIndex(0), mIsFiring(false), mFireCountdown(sf::Time::Zero) , mFireRateLevel(1), mFireCommand(), mSpreadLevel(1), mIsMarkedForRemoval(false) , mMissileCommand(), mIsLaunchMissile(false), mMissileAmmo(2), mDropPickupCommand() { if (!isAllied()) mFireRateLevel = 0; centerOrigin(mSprite); std::unique_ptr<TextNode> healthDisplay(new TextNode(fonts, "")); mHealthDisplay = healthDisplay.get(); attachChild(std::move(healthDisplay)); mFireCommand.category = Category::Scene; mFireCommand.action = [this, &textures](SceneNode& node, sf::Time) { createBullet(node, textures); }; mMissileCommand.category = Category::Scene; mMissileCommand.action = [this, &textures] (SceneNode& node, sf::Time) { createProjectile(node, Projectile::Missile, 0.f, 0.5f, textures); }; mDropPickupCommand.category = Category::Scene; mDropPickupCommand.action = [this, &textures] (SceneNode& node, sf::Time) { createPickup(node, textures); }; }
Aircraft::Aircraft(Type type, const TextureHolder& textures, const FontHolder& fonts) : Entity(Table[type].hitpoints) , mType(type) , mFireCommand() , mMissileCommand() , mFireCountdown(sf::Time::Zero) , mIsFiring(false) , mIsLaunchingMissile(false) , mShowExplosion(true) , mSpawnedPickup(false) , mSprite(textures.get(Table[type].texture), Table[type].textureRect) , mExplosion(textures.get(Textures::Explosion)) , mFireRateLevel(1) , mSpreadLevel(1) , mMissileAmmo(2) , mDropPickupCommand() , mTravelledDistance(0.f) , mDirectionIndex(0) , mMissileDisplay(nullptr) { mExplosion.setFrameSize(sf::Vector2i(256, 256)); mExplosion.setNumFrames(16); mExplosion.setDuration(sf::seconds(1)); centerOrigin(mSprite); centerOrigin(mExplosion); mFireCommand.category = Category::SceneAirLayer; mFireCommand.action = [this, &textures] (SceneNode& node, sf::Time) { createBullets(node, textures); }; mMissileCommand.category = Category::SceneAirLayer; mMissileCommand.action = [this, &textures] (SceneNode& node, sf::Time) { createProjectile(node, Projectile::Missile, 0.f, 0.5f, textures); }; mDropPickupCommand.category = Category::SceneAirLayer; mDropPickupCommand.action = [this, &textures] (SceneNode& node, sf::Time) { createPickup(node, textures); }; std::unique_ptr<TextNode> healthDisplay(new TextNode(fonts, "")); mHealthDisplay = healthDisplay.get(); attachChild(std::move(healthDisplay)); if (getCategory() == Category::PlayerAircraft) { std::unique_ptr<TextNode> missileDisplay(new TextNode(fonts, "")); missileDisplay->setPosition(0, 70); mMissileDisplay = missileDisplay.get(); attachChild(std::move(missileDisplay)); } updateTexts(); }