29 lines
803 B
C++
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
|