精灵表动画期间闪烁

时间:2014-05-24 20:30:35

标签: c++ sfml

我正在为我的精灵制作动画,如下所示:

enter image description here

我创建了一个变量,每次按下W都会增加64,因为每个精灵都是64 x 64,但它有效,但是有闪烁,这是我的代码。顺便说一下,它是在绘制方法中。

if (sf::Keyboard::isKeyPressed(sf::Keyboard::W)){
    animator += 64;
}
else{
    animator = 0;
}


if (animator > 512){
    animator = 0;
}
playerSprite.setTextureRect(sf::IntRect(0, animator, 64, 64));
window.draw(playerSprite);

任何帮助都将不胜感激,谢谢。

1 个答案:

答案 0 :(得分:1)

您不应该以这种方式实现框架的更改:此处的更改取决于帧速率而不是经过的时间。

你应该有一个计时器,并在每个[FRAME_DELAY]时间更改框架。 例如,每200毫秒。