2016-08-15 69 views
-1

我在SFML中有一个spritesheet,我正在尝试制作一个动画sprite。我的想法是只要改变用IntRect完成的界限,只要按下键盘按键,但我无法找到的是如何让我的IntRect变量改变它的定义而不会把所有东西搞砸。我会很感激一个可以理解的答案,因为你可以告诉我这是一个初学者。如何在定义IntRect后进行更改?

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

+0

'characterRect = sf :: IntRect(0,192,192,192);';得到一本书。 – LogicStuff

+0

@LogicStuff废话,我只是意识到这是一个愚蠢的问题。 –

回答

3

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

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

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

有关sf :: Sprite类的教程可用here

相关问题