我在尝试此代码时遇到错误:
#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的对象)
答案 0 :(得分:1)
如果您尝试使用非静态数据成员初始化,则不能这样做。您需要使用大括号初始化或等于(=)初始化。这些都应该有效:
struct Ball
{
Vector2f velocity {-ballVelocity, -ballVelocity};
};
或者这个:
struct Ball
{
Vector2f velocity = Vector2f(-ballVelocity, -ballVelocity);
};
虽然,如果我没有弄错,SFML的组件存在于sf
命名空间中,因此对Vector2f
的任何引用实际上都需要被限定为sf::Vector2f
。< / p>