所以我在这里有这段代码:
void Star::createStar(){
sf::CircleShape star1(r,50);
star1.setPosition(x,y);
sf::Texture* t = CreateTexture(256,256);
star1.setTexture(t,false);
star=star1;
std::cout << "Done!"<<std::endl;
}
void Star::update(){
star.setOrigin(x-(.5*r),y-(.5*r));
star.rotate(0.01);
}
并且我希望恒星绕其中心旋转,但是我可能做的计算有误,但是即使我没有声明中心,恒星也围绕相同的点旋转。
编辑::我修复了star.setOrigin()应该具有参数r,r!
最佳答案
这是正确的代码
void Star::createStar(){
sf::CircleShape star1(r,50);
star1.setPosition(x,y);
sf::Texture* t = CreateTexture(256,256);
star1.setTexture(t,false);
star=star1;
std::cout << "Done!"<<std::endl;
}
void Star::update(){
//star.setOrigin(x-(.5*r),y-(.5*r));
//no need to set origin
star.rotate(0.01);
}