0
我有一组简单的类。其中一个是ButtonComponent
,我希望在视觉方面实质上使用sf::RectangleShape
,然后ButtonComponent
的其余部分将处理诸如事件监听器之类的事情。问题的形式是,如果我从父类继承sf::Drawable
我必须实现draw()
(Component
类),这意味着子类实现父母draw()
而不是SFML形状draw()
函数。有没有重组两种课程的方式或调用sf::RectangleShapes
绘图函数的方法?调用sf :: RectangleShapes绘制函数?
Component.h
class Component : public sf::Drawable {
public:
Component();
virtual ~Component();
virtual void draw(sf::RenderTarget& target, sf::RenderStates states) const = 0;
};
class ButtonComponent : public sf::RectangleShape, public Component {
virtual void draw(sf::RenderTarget& target, sf::RenderStates states);
};
“是否有某种方法重构两个类或调用'sf :: RectangleShapes'绘制函数的方法?”什么阻碍你实际调用'sf :: RectangleShapes :: draw()'? –
它是一个私人函数... – Matthew
它是私有的,因为它应该只由渲染目标调用。如果你想绘制一个drawable,你必须调用相反的一个:'myRenderTarget.draw(myDrawable);'这会在内部调用drawable的draw()成员。 – Mario