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()); } } }
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); }
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_); }
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())); } }