我最近开始使用 SFML,我决定作为一种学习经验,我将使用它制作一个 pong 克隆。我定义了一个名为Ball
绘制使用 SFML 绘制RectangleShape
。当我尝试使用以下命令将这个自定义类型绘制到屏幕上时window.draw()
但是,我收到错误,因为Ball
不是一个sf::Drawable
。作为 SFML 的新手,我将不胜感激。
To use window.draw(object)
对象的类必须继承可绘制界面 http://www.sfml-dev.org/documentation/2.3.2/classsf_1_1Drawable.php并实现抽象 sf::Drawable::draw 函数。
听起来 sf::RectangleShape 是 Ball 的成员。 SFML 知道如何渲染形状,但不知道球本身。 Ball 的类声明应该如下所示:
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);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)