错误 C2228:".x"的左侧必须具有类/结构/联合

error C2228: left of '.x' must have class/struct/union

本文关键字:联合 结构 C2228 错误      更新时间:2023-10-16

我收到错误,完全不知道为什么!

//create a circle shape.
sf::CircleShape shape;
shape.setRadius(25);
shape.setFillColor(sf::Color(100,250,250));
//circle collision geometry
circle circleTest(shape.getPosition.x,shape.getPosition.y,shape.getRadius())

是圆碰撞几何图形的类。它在构造函数上失败

(shape.getPosition.x,shape.getPosition.y,shape.getRadius())

我不知道为什么我得到错误,它工作正常,然后突然给了我标题中的错误。

getPosition是一个

函数。必须调用它并访问其返回值的成员。

您收到此错误的原因是因为 sf::Shape::getPosition() 是一个方法,您需要调用该方法才能获得位置。进行该调用后,您可以访问 sf::Shape::getPosition() 返回的 sf::Vector2f 的 .x 和 .y 成员。

因此,您的代码应如下所示。

//create a circle shape.
sf::CircleShape shape;
shape.setRadius(25);
shape.setFillColor(sf::Color(100,250,250));
//circle collision geometry
circle circleTest(shape.getPosition().x,shape.getPosition().y,shape.getRadius())

sf::Shape::getPosition()