一旦定义了 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。
我有一个 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。