【问题标题】:How would I make an IntRect change once it has been defined?定义 IntRect 后如何进行更改?
【发布时间】:2016-08-15 16:35:09
【问题描述】:

我在 SFML 中有一个精灵表,我正在尝试自己制作一个动画精灵。我的想法是只要按下键盘键就更改使用 IntRect 完成的边界,但我找不到的是如何让我的 IntRect 变量更改其定义而不搞砸一切。我会很感激一个可以理解的答案,因为你可以说我是这方面的初学者。

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

【问题讨论】:

  • characterRect = sf::IntRect(0,192,192,192);;买一本书。
  • @LogicStuff 废话,我才意识到这是一个愚蠢的问题。

标签: c++ animation sprite sfml


【解决方案1】:

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

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

请记住,sf::Rect<T>(及其别名,例如sf::IntRect) - 有意 - 创建起来非常便宜。不要改变你已经拥有的属性,只需丢弃它并创建一个新的。仅在明确需要时才更改/维护相同的矩形。

关于 sf::Sprite 类的教程在 here 可用。

【讨论】:

    猜你喜欢
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    • 2021-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多