Example #1
0
/// <summary>
/// Initializes a new instance of the <see cref="Powerup"/> class.
/// </summary>
/// <param name="window">The window.</param>
/// <param name="startPoint">The start point.</param>
/// <param name="type">The type.</param>
/// <param name="resourceHandler">The resource handler.</param>
/// <param name="timeStep">The time step.</param>
Powerup::Powerup(
	sf::RenderWindow& window,
	VectorN startPoint,
	int type,
	std::shared_ptr<ResourceHandler>& resourceHandler,
	const sf::Time& timeStep
	) :
	resourceHandler(resourceHandler),
	type((Powerup::PowerUpType)type),
	Object(window),
	timeStep(timeStep),
	speedX(0),
	speedY(150)
{
	// Determine which type the poweup is, set the desired texture.
	if (type == Powerup::PowerUpType::HEALTH_INCREMENT)
	{
		sprite = std::unique_ptr<GameShape>(new GameShape(GameShape::ShapeType::CIRCLE, 10, 20));
		sprite->setTexture(&resourceHandler->getTexture(ResourceHandler::Texture::HEALTH_KIT));
	}
	else if (type == Powerup::PowerUpType::PULSATING_GUN)
	{
		sprite = std::unique_ptr<GameShape>(new GameShape(GameShape::ShapeType::CIRCLE, 20, 20));
		sprite->setTexture(&resourceHandler->getTexture(ResourceHandler::Texture::PULSE_GUN));
	}

	// Set the position of the sprite powerup
	sprite->setPosition(startPoint.x, startPoint.y);
}
Example #2
0
void VolumeRAM2GLConverter::update(std::shared_ptr<const VolumeRAM> volumeSrc,
                                   std::shared_ptr<VolumeGL> volumeDst) const {
    if (volumeSrc->getDimensions() != volumeDst->getDimensions()) {
        volumeDst->setDimensions(volumeSrc->getDimensions());
    }
    volumeDst->getTexture()->upload(volumeSrc->getData());
}
void LayerGL2RAMConverter::update(std::shared_ptr<const LayerGL> layerSrc,
                                  std::shared_ptr<LayerRAM> layerDst) const {
    if (layerSrc->getDimensions() != layerDst->getDimensions()) {
        layerDst->setDimensions(layerSrc->getDimensions());
    }
    layerSrc->getTexture()->download(layerDst->getData());
}
Example #4
0
void VolumeCLGL2RAMConverter::update(std::shared_ptr<const VolumeCLGL> volumeSrc,
                                     std::shared_ptr<VolumeRAM> volumeDst) const {
    if (volumeSrc->getDimensions() != volumeDst->getDimensions()) {
        volumeDst->setDimensions(volumeSrc->getDimensions());
    }

    volumeSrc->getTexture()->download(volumeDst->getData());

    if (volumeDst->hasHistograms()) volumeDst->getHistograms()->setValid(false);
}
Example #5
0
/// <summary>
/// Initializes a new instance of the <see cref="Bullet"/> class.
/// </summary>
/// <param name="window">The window.</param>
/// <param name="bulletType">Type of the bullet.</param>
/// <param name="timeStep">The time step.</param>
/// <param name="resourceHandler">The resource handler.</param>
Bullet::Bullet(sf::RenderWindow& window, Bullet::Type bulletType, const sf::Time& timeStep, std::shared_ptr<ResourceHandler>& resourceHandler) :
Object(window),
bulletType(bulletType),
timeStep(timeStep),
deg(-1) // Set rotation as -1 while not inited.
{
	setDeleted(false);

	// Define the bullet texutres as a standard shot
	if (Bullet::Type::standardShot == bulletType){
		sprite = std::shared_ptr<GameShape>(new GameShape(GameShape::CIRCLE, 3, 10));
		sprite->setTexture(&resourceHandler->getTexture(ResourceHandler::Texture::REGULAR_BULLET_1));
	}

	// Define the bullet textures as a heavy shot 
	else if (Bullet::Type::heavyShot == bulletType)
	{
		sprite = std::shared_ptr<GameShape>(new GameShape(GameShape::TRIANGLE, 40.0f));
		sprite->setTexture(&resourceHandler->getTexture(ResourceHandler::Texture::HEAVY_SHOT_TEXTURE));
	}

}
Example #6
0
std::shared_ptr<VolumeRAM> VolumeGL2RAMConverter::createFrom(
    std::shared_ptr<const VolumeGL> volumeGL) const {
    auto volume = createVolumeRAM(volumeGL->getDimensions(), volumeGL->getDataFormat());

    if (volume) {
        volumeGL->getTexture()->download(volume->getData());
        return volume;
    } else {
        LogError("Cannot convert format from GL to RAM:" << volumeGL->getDataFormat()->getString());
    }

    return nullptr;
}
std::shared_ptr<LayerRAM> LayerGL2RAMConverter::createFrom(
    std::shared_ptr<const LayerGL> layerGL) const {
    auto layerRAM =
        createLayerRAM(layerGL->getDimensions(), layerGL->getLayerType(), layerGL->getDataFormat());

    if (layerRAM) {
        layerGL->getTexture()->download(layerRAM->getData());
        return layerRAM;
    } else {
        LogError("Cannot convert format from GL to RAM:" << layerGL->getDataFormat()->getString());
    }

    return nullptr;
}
Example #8
0
// hard coded test for now
AnimatedSprite::AnimatedSprite(const std::shared_ptr<AnimatedSpriteData>& spriteData, scene::ISceneNode* parent, irr::scene::ISceneManager* mgr, irr::s32 id):
scene::ISceneNode(parent, mgr, id),
spriteData(spriteData),
playing(false),
startTime(0),
startFrame(0),
currentSequence(0),
looping(false),
flipHorizontal(false),
flipVertical(false)
{
	core::dimension2du orig = spriteData->getTexture()->getOriginalSize();
	setSize(core::dimension2df(orig.Width / spriteData->getWidth(), size.Height = orig.Height / spriteData->getHeight()));

	// initialize vertices
	material.Lighting = false;
	material.setFlag(video::EMF_BILINEAR_FILTER, false);
	material.MaterialType = video::EMT_TRANSPARENT_ALPHA_CHANNEL_REF;
	material.setTexture(0, spriteData->getTexture());

	indices[0] = 0;
	indices[1] = 2;
	indices[2] = 1;
	indices[3] = 0;
	indices[4] = 3;
	indices[5] = 2;

	vertices[0].TCoords.set(1.0f, 1.0f);
	vertices[1].TCoords.set(1.0f, 0.0f);
	vertices[2].TCoords.set(0.0f, 0.0f);
	vertices[3].TCoords.set(0.0f, 1.0f);

	for (int i = 0; i < 4; i++)
	{
		vertices[i].Color.set(255,255,255,255);
	}
}
Example #9
0
std::shared_ptr<VolumeRAM> VolumeCLGL2RAMConverter::createFrom(
    std::shared_ptr<const VolumeCLGL> volumeCLGL) const {
    const size3_t dimensions{volumeCLGL->getDimensions()};
    auto destination = createVolumeRAM(dimensions, volumeCLGL->getDataFormat());

    if (destination) {
        volumeCLGL->getTexture()->download(destination->getData());
        // const cl::CommandQueue& queue = OpenCL::getPtr()->getQueue();
        // queue.enqueueReadVolume(volumeCL->get(), true, glm::size3_t(0), glm::size3_t(dimensions,
        // 1), 0, 0, volumeRAM->getData());
    } else {
        LogError("Invalid conversion or not implemented");
    }

    return destination;
}
Example #10
0
/// <summary>
/// Initializes a new instance of the <see cref="Player"/> class.
/// </summary>
/// <param name="window">The window.</param>
/// <param name="pos">The position.</param>
/// <param name="radius">The radius.</param>
/// <param name="bFactory">The b factory.</param>
/// <param name="bullets">The bullets.</param>
/// <param name="resourceHandler">The resource handler.</param>
/// <param name="timeStep">The time step.</param>
/// <param name="hardMode">The hard mode.</param>
Player::Player(sf::RenderWindow& window,
	sf::Vector2f pos,
	int radius, BulletFactory& bFactory,
	std::list<std::unique_ptr<Bullet>>& bullets,
	std::shared_ptr<ResourceHandler>& resourceHandler,
	const sf::Time& timeStep,
	const bool hardMode,
	std::list<std::shared_ptr<Shooter>>& objects
	)
	:
	objects(objects),
	playerScore(0),
	playerKills(0),
	pulsateGun(false),

	Shooter(window, bFactory, bullets, resourceHandler, timeStep)
{
	// Checks if its hardmode, sets the health correspondingly.
	if (!hardMode)
	{
		setHealth(5);
		startHealth = 5;
	}
	else
	{
		setHealth(1);
		startHealth = 1;
	}

	// Set the shape type
	this->shooterType = Shooter::ShooterType::PLAYER;

	// Define the shape for the player
	sprite = std::shared_ptr<GameShape>(new GameShape(GameShape::ShapeType::PLAYER_SHIP));
	sprite->setTexture(&resourceHandler->getTexture(ResourceHandler::Texture::PLAYER_SHIP));
	sprite->setOutlineThickness(1);
	sprite->setOutlineColor(sf::Color::Cyan);
	this->sprite->setPosition(pos);
}
Example #11
0
std::shared_ptr<VolumeCLGL> VolumeGL2CLGLConverter::createFrom(
    std::shared_ptr<const VolumeGL> volumeGL) const {
    return std::make_shared<VolumeCLGL>(volumeGL->getDimensions(), volumeGL->getDataFormat(),
                                        volumeGL->getTexture());
}
Example #12
0
std::shared_ptr<VolumeGL> VolumeCLGL2GLConverter::createFrom(
    std::shared_ptr<const VolumeCLGL> src) const {
    return std::make_shared<VolumeGL>(src->getTexture(), src->getDataFormat());
}
Example #13
0
 Element::Element(VertexData vertex_data, std::shared_ptr<Skin> skin, const unsigned int layer) : Renderable(vertex_data.generateVertexArrayObject(), vertex_data), skin(skin), anchor_point(glm::vec2(0.0, 0.0)), width(0), height(0), text_padding(0), cursor_within(false), color(glm::vec4(1.0)), layer(layer) {
   setShader(skin->getShader());
   addTexture(0, "skin0", skin->getTexture());
   getTransform()->translate(glm::vec3(0.0, 0.0, -(float)layer));
 }
Example #14
0
/// <summary>
/// Initializes a new instance of the <see cref="Enemy"/> class.
/// </summary>
/// <param name="window">The window.</param>
/// <param name="path">The path.</param>
/// <param name="emoteQueue">The emote queue specifies the queue of emotes loaded from script.</param>
/// <param name="type">The type.</param>
/// <param name="repeat">The repeat.</param>
/// <param name="bFactory">The b factory.</param>
/// <param name="bullets">The bullets.</param>
/// <param name="resourceHandler">The resource handler.</param>
/// <param name="timeStep">The time step.</param>
Enemy::Enemy(sf::RenderWindow& window,
	std::queue<VectorN> path,
	std::list<std::pair<int, std::string>> emoteQueue,
	int type, int repeat, BulletFactory& bFactory,
	std::list<std::unique_ptr<Bullet>>& bullets,
	std::shared_ptr<ResourceHandler>& resourceHandler,
	const sf::Time& timeStep
	) :
	pathTemplate(path), // Const, not to be changed (The template is copyed when a path is over in repeat mode)
	emoteQueue(emoteQueue),
	repeat(repeat),
	secondRot(0),
	acceleration(0),
	speed(sf::Vector2f(50, 50)),
	Shooter(window, bFactory, bullets, resourceHandler, timeStep)
{
	// Sets the type of the Shooter to enemy
	this->shooterType = Shooter::ShooterType::ENEMY;

	// Check which type the enemy is, from this we determine, health, total health , score value and textures,
	if (type == 1) // REGULAR
	{
		setHealth(2);
		setStartHealth(2);
		sprite = std::unique_ptr<GameShape>(new GameShape(GameShape::ShapeType::STARSHIP));
		sprite->setTexture(&resourceHandler->getTexture(ResourceHandler::Texture::ENEMY_SHIP));
		this->setEnemyType(Enemy::EnemyType::REGULAR);
		this->setScoreValue(100);
	}
	else if (type == 2) // Chubby Mob
	{
		setHealth(10);
		setStartHealth(10);
		sprite = std::unique_ptr<GameShape>(new GameShape(GameShape::ShapeType::CIRCLE, 40, 30));
		sprite->setTexture(&resourceHandler->getTexture(ResourceHandler::Texture::CHUBBY_SHIP_TEXTURE));
		this->setEnemyType(Enemy::EnemyType::CHUBBY);
		this->setScoreValue(250);

	}
	else if (type == 3) // BOSS
	{
		setHealth(250);
		setStartHealth(250);
		sprite = std::unique_ptr<GameShape>(new GameShape(GameShape::ShapeType::BOSS));
		sprite->setTexture(&resourceHandler->getTexture(ResourceHandler::Texture::BOSS));
		this->setEnemyType(Enemy::EnemyType::BOSS);
		this->setScoreValue(500);

	}
	else if (type == 4) // Umbasta boss
	{
		setHealth(750);
		setStartHealth(750);
		sprite = std::unique_ptr<GameShape>(new GameShape(GameShape::ShapeType::CIRCLE, 80, 30));
		sprite->setTexture(&resourceHandler->getTexture(ResourceHandler::Texture::BOSS_DEATHSTAR_TEXTURE));
		this->setEnemyType(Enemy::EnemyType::DEATHSTAR);
		this->setScoreValue(12000);
	}

#ifdef _DEBUG
	sprite->setOutlineThickness(1);
	sprite->setOutlineColor(sf::Color::Cyan);
#endif

	setInitPath();
}
Example #15
0
		GUITextureWrapper(const std::shared_ptr<WidgetType>& widget)
			: m_widget(widget ? widget : std::make_shared<WidgetType>())
			, texture(m_widget->getTexture())
			, style(m_widget->m_style) {}