一旦定义了IntRect,我将如何进行更改?

时间:2016-08-15 16:35:09

标签: c++ animation sprite sfml

我在SFML中有一个spritesheet,我自己尝试制作一个动画精灵。我的想法是只要按下键盘键就可以改变IntRect所做的界限,但我无法找到的是如何让我的IntRect变量改变它的定义而不会搞砸一切。我很欣赏一个可以理解的答案,因为你可以告诉我这是一个初学者。

澄清我想要做的是将sf::IntRect characterRect(0,0,192,192)更改为(0,192,192,192)

1 个答案:

答案 0 :(得分:3)

如果您正在使用SFML的图形库,那么您应该创建一个sf::Sprite的子类。更改sf::Sprite使用的矩形很简单:

mySpriteInstance.setTextureRect(sf::IntRect(0, 192, 192, 192));

请记住,sf::Rect<T>(及其别名,例如sf::IntRect) - 故意 - 非常便宜,无法创建。不要改变已有的属性,只需丢弃它并创建一个新属性。如果明确要求,只需要改变/维护相同的矩形。

有关sf :: Sprite类的教程here