无法使用SFML在struct中构造Vector2f对象

时间:2014-05-12 21:54:50

标签: c++ vector constructor sfml

我在尝试此代码时遇到错误:

    #include <SFML/Window.hpp>
    #include <SFML/Graphics.hpp>

    const float ballVelocity = 8.f;

    struct Ball
    {
        Vector2f velocity(-ballVelocity, -ballVelocity);
    };

我正在使用SFML并通过教程来完成它,它应该可以工作,但是Visual Studio在这一行中是这样的:

Vector2f velocity(-ballVelocity, -ballVelocity);

预期类型说明符。

(编辑:要清楚我试图创建Vector2的对象)

1 个答案:

答案 0 :(得分:1)

如果您尝试使用非静态数据成员初始化,则不能这样做。您需要使用大括号初始化或等于(=)初始化。这些都应该有效:

struct Ball
{
    Vector2f velocity {-ballVelocity, -ballVelocity};
};

或者这个:

struct Ball
{
    Vector2f velocity = Vector2f(-ballVelocity, -ballVelocity);
};

虽然,如果我没有弄错,SFML的组件存在于sf命名空间中,因此对Vector2f的任何引用实际上都需要被限定为sf::Vector2f。< / p>

相关问题