Example #1
0
void RenderComponent::update()
{
	//hmm
	if (m_Sprite) {
		if (m_Obj->hasComponent("Transform")) {
			TransformComponent* tc = (TransformComponent*)m_Obj->getComponent("Transform");
			m_Sprite->setX(tc->getPositionX());
			m_Sprite->setY(tc->getPositionY());
			m_Sprite->setAngle(tc->getRotation());
		}
	}
	if (m_SpriteSheet) {
		m_SpriteSheet->update();
		if (m_Obj->hasComponent("Transform")) {
			TransformComponent* tc = (TransformComponent*)m_Obj->getComponent("Transform");
			m_SpriteSheet->setX(tc->getPositionX());
			m_SpriteSheet->setY(tc->getPositionY());
			m_SpriteSheet->setAngle(tc->getRotation());
		}
	}
}
Example #2
0
void SpriteComponent::update() 
{
	// setting position from Transform Component
	TransformComponent* transform = parent.getComponent<TransformComponent>();
 	
	sprite.setPosition(utils::mToPx(transform->getX()),
	                   utils::mToPx(transform->getY()) );

	sprite.setRotation(utils::radToDeg(transform->getRotation()) );
	
	GameManager& gameManager = GameManager::getInstance();
	gameManager.getWindow().draw(sprite);
}
Example #3
0
void Camera::updateView(void){
	if(isFollowing_){
		TransformComponent* transformation = followee_->getComponent<TransformComponent>();
		glm::fquat rotation = transformation->getRotation() * rotation_;
		// glm::vec3 pos = pos_ + transformation->getPosition();
		view_matrix_ = glm::translate(glm::mat4(1.0), transformation->getPosition()) * glm::mat4_cast(rotation) * glm::translate(glm::mat4(1.0), pos_);
	}
	else if(isMimicking_){
		glm::vec3 pos = pos_ + followee_->getComponent<TransformComponent>()->getPosition();
		view_matrix_ = glm::translate(glm::mat4(1.0), pos) * glm::mat4_cast(rotation_);
	}
	else{
		view_matrix_ = glm::translate(glm::mat4(1.0), pos_) * glm::mat4_cast(rotation_);
	}
	
	view_matrix_ = glm::inverse(view_matrix_);
}
Example #4
0
void SpriteComponent::setTexture(std::string textureName) 
{
	// load texture from AssetManager
	AssetManager& assetManager = AssetManager::getInstance();
	sprite.setTexture(assetManager.getTextureByName(textureName));
	//assetManager.getTextureByName(textureName).setSmooth(true);

	// set origin in the center 
	float xOrigin, yOrigin;
	sf::Vector2u size = sprite.getTexture()->getSize();
	xOrigin = size.x / 2;
	yOrigin = size.y / 2;
	sprite.setOrigin(xOrigin, yOrigin);

	// if the parent GameObject has a transform component, get the transform from it
	TransformComponent* transformComponent = parent.getComponent<TransformComponent>();
	if (transformComponent) {
		sprite.setPosition(utils::mToPx(transformComponent->getX()),
						   utils::mToPx(transformComponent->getY()) );
		sprite.setRotation(utils::radToDeg(transformComponent->getRotation()));
	}
}