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

How would I make an IntRect change once it has been defined?

我有一个 SFML 精灵表,我正在尝试自己制作一个动画精灵。我的想法是只要按下键盘键,就改变 IntRect 完成的边界,但我找不到的是如何让我的 IntRect 变量改变它的定义而不把一切搞砸。如果您能给我一个可以理解的答案,我将不胜感激,因为您可以看出我是这方面的初学者。

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

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

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

请记住,sf::Rect<T>(及其别名,例如 sf::IntRect)是有意地 创建起来非常便宜。不要改变你已有的属性,只需丢弃它并创建一个新的。如果明确需要,请只打扰 altering/maintaining 相同的矩形。

关于 sf::Sprite class 的教程可用 here