我在SFML中有一个spritesheet,我自己尝试制作一个动画精灵。我的想法是只要按下键盘键就可以改变IntRect所做的界限,但我无法找到的是如何让我的IntRect变量改变它的定义而不会搞砸一切。我很欣赏一个可以理解的答案,因为你可以告诉我这是一个初学者。
澄清我想要做的是将sf::IntRect characterRect(0,0,192,192)
更改为(0,192,192,192)
。
答案 0 :(得分:3)
如果您正在使用SFML的图形库,那么您应该创建一个sf::Sprite
的子类。更改sf::Sprite
使用的矩形很简单:
mySpriteInstance.setTextureRect(sf::IntRect(0, 192, 192, 192));
请记住,sf::Rect<T>
(及其别名,例如sf::IntRect
) - 故意 - 非常便宜,无法创建。不要改变已有的属性,只需丢弃它并创建一个新属性。如果明确要求,只需要改变/维护相同的矩形。
有关sf :: Sprite类的教程here。