【发布时间】:2013-10-27 14:51:09
【问题描述】:
所以我为我正在制作的游戏制作了一个精灵表动画,但由于某种原因它大大落后于我的游戏。
精灵表是一个 1248x120 的 .png 文件,每个精灵的大小为 156x120 像素。
我用来制作动画的代码:
void Entity::AnimateHorizontal(sf::Texture tex, int width, int hight)
{
sprite.setTextureRect(sf::IntRect(source.x * width, 0, width, hight));
frameCounter += frameSpeed * frameTimer.restart().asSeconds();
if (frameCounter >= switchFrame)
{
frameCounter = 0;
source.x++;
if (source.x * width >= tex.getSize().x) source.x = 0;
}
}
还有:
Object.AnimateHorizontal(tex_Mech1Feet,156,120);
在我的游戏循环中。
FPS 只是加载工作表,没有动画:Click me!
带有动画表的 FPS:Click me!
另外请注意,这是我目前在我的游戏中实际做的唯一事情,所以它绝对不应该落后这么糟糕。
在使用 C++ 编程方面,我仍然是一个完全的新手,所以请多多包涵。
话虽如此,我很感激任何和所有的建议,在此先感谢!
【问题讨论】: