gpt4 book ai didi

c++ - 如何在 SFML 中为 Sprite 制作动画

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:16:39 25 4
gpt4 key购买 nike

假设我有 4 张图像,我想使用这 4 张图像来制作角色动画。这 4 个图像代表行走的角色。我希望动画在我按下移动键时自动重复,但在我松开它时立即停止。如果您不知道它,则不需要特定于 SFML,只要基本理论就能真正帮助我。

谢谢。

最佳答案

您可能需要某种简单的状态机。当按键按下时(参见 sf::Input's IsKeyDown method ),让角色处于“动画”状态。当键未按下时,使角色处于“非动画”状态。当然,您始终可以跳过这种“状态”,只执行我在下面提到的操作(具体取决于您在做什么)。

然后,如果角色处于“动画”状态,则获取下一个“图像”(有关详细信息,请参阅下一段)。例如,如果您将图像存储在一个简单的 4 元素数组中,则下一张图像将位于 (currentIndex + 1) % ARRAY_SIZE。根据您正在做的事情,您可能希望将图像帧存储在更复杂的数据结构中。如果角色不处于“动画”状态,则您不会在此处进行任何更新。

如果您的“4 张图像”在同一个图像文件中,您可以使用 sf::Sprite 的 SetSubRect方法来更改显示的图像部分。如果您实际上有 4 个不同的图像,那么您可能需要使用 sf::Sprite 的 SetImage切换图像的方法。

关于c++ - 如何在 SFML 中为 Sprite 制作动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2684938/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com