我正在为我的精灵制作动画,如下所示:
我创建了一个变量,每次按下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);
任何帮助都将不胜感激,谢谢。
答案 0 :(得分:1)
您不应该以这种方式实现框架的更改:此处的更改取决于帧速率而不是经过的时间。
你应该有一个计时器,并在每个[FRAME_DELAY]时间更改框架。 例如,每200毫秒。