Я пытаюсь запрограммировать автомобиль с 4 колесами, и я хочу, чтобы они наследовали трансформирование автомобиля при рисовании. Я знаю очень маленький учебник по адресу SFML transform, но я точно не понимаю. я решил приехать сюда рано в проект, поэтому я не придется переписывать большинство из них (видел, что это случается с другими)Иерархия объектов в SFML 2.3
На данный момент у меня есть только это:
class Car : public Drawable, public Transformable
{
public:
Car(Vector2f dimensions):
m_dimensions(dimensions),
m_body(m_dimensions),
m_wheels(4)
{}
private:
virtual void draw(RenderTarget& target, RenderStates states) const
{
states.transform *= getTransform();
states.texture = NULL;
target.draw(m_body, states);
}
struct Wheel :
{
};
vector<Wheel> m_wheels;
Vector2f m_dimensions;
RectangleShape m_body;
};
int main()
{
RenderWindow window(VideoMode(800, 600), "SFML window");
window.setVerticalSyncEnabled(true);
Car car(Vector2f(300.f, 180.f));
car.setOrigin(20,20);
car.setPosition(400, 300);
car.rotate(45);
while(window.isOpen())
{
Event event;
while(window.pollEvent(event))
{
if(event.type == Event::Closed)
window.close();
}
car.rotate(1);
window.clear();
window.draw(car);
window.display();
}
}
мне просто нужно колеса, которые будут напечатаны рядом с автомобилем (я выясню позицию и что сейчас), но прямо сейчас я просто хочу знать, правильно ли я направляюсь, или вы знаете о какой-либо лучшей реализации.