错误C2228:'。x'的左边必须有class / struct / union

时间:2014-01-03 13:58:22

标签: c++ sfml

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

//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())

Circle是圆形碰撞几何体的类。它在构造函数

上失败
  

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

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

2 个答案:

答案 0 :(得分:5)

getPosition功能。您必须调用它并访问其返回值的成员。

答案 1 :(得分:0)

您收到此错误的原因是因为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()