我最近开始使用SFML,为了学习体验,我决定用它制作一个乒乓球克隆版。我定义了一个名为Ball
的类,该类使用SFML绘制一个RectangleShape
。然而,当我尝试使用window.draw()
函数将此自定义类型绘制到屏幕上时,我会因为Ball
不是一个sf::Drawable
而遇到错误。由于我是SFML的新手,希望能得到帮助。
window.draw(object)
,对象的类必须继承drawable接口并实现抽象的sf::Drawable::draw函数。class Ball : public sf::Drawable //,...
{
//...
private:
virtual void draw(sf::RenderTarget& target, sf::RenderStates states) const;
//...
};
绘制应该按照以下方式实现:
void Ball::draw(sf::RenderTarget& target, sf::RenderStates states) const
{
//assuming m_shape is the sf::RectangleShape
target.draw(m_shape, states);
}