0
私は簡単なクラスのセットを持っています。そのうちの1つはButtonComponent
です。ここで私は本質的に視覚的な側面にsf::RectangleShape
を使用し、その後はButtonComponent
の残りはイベントリスナーなどのものを処理します。この問題は、親クラスのsf::Drawable
を継承すると、draw()
(Component
クラス)を実装する必要があります。これは、子クラスがdraw()
の親を実装し、SFMLシェイプdraw()
の機能を実装していないことを意味します。 2つのクラスを再構築する方法や、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);
};
"2つのクラスを再構成する方法や、' sf :: RectangleShapes'描画関数を呼び出す方法はありますか?実際に 'sf :: RectangleShapes :: draw()'と呼ぶのを妨げるものは何ですか? –
それはプライベート関数です... – Matthew
レンダリングターゲットによってのみ呼び出されるはずだからプライベートです。 drawableを描画したい場合は、 'myRenderTarget.draw(myDrawable);'これを呼び出すと、実際にdrawableの 'draw()'メンバーが内部的に呼び出されます。 – Mario