StarCap/Rider.h
2025-09-26 09:26:47 -06:00

29 lines
803 B
C++

//
// Created by Benjamin on 4/29/2021.
//
#ifndef SFML_TEMPLATE_RIDER_H
#define SFML_TEMPLATE_RIDER_H
class Rider : public GameSprite {
private:
GameSprite *mount;
sf::Vector2f relativeLoc;
public:
Rider(const sf::Texture &texture, float scale, GameSprite *_mount, sf::Vector2f worldCoord) : GameSprite(texture, scale) {
mount = _mount;
relativeLoc = sf::Vector2f(worldCoord.x - mount->getPosition().x, worldCoord.y - mount->getPosition().y);
relativeLoc = mount->getInverseTransform().transformPoint(relativeLoc);
}
void update() override {
sf::Vector2f newLoc = mount->getTransform().transformPoint(relativeLoc);
setPosition(newLoc);
GameSprite::update();
}
};
#endif //SFML_TEMPLATE_RIDER_H