Я хотел бы создать анимацию, которая работает непрерывно, но с регулируемой скоростью. Я попробовал функцию «сна», но, очевидно, это не было решением. До сих пор у меня есть кадр, перемещающийся в al oop от 1 до 10, который представляет местоположение x на листе спрайта с использованием функции 'clock' и остатков. Проблема в том, что частота кадров все еще либо слишком высокая, либо слишком низкая независимо от настроек. Я хотел бы что-то гораздо более точно настроенное (желательно миллисекунды). Это близко к тому, что я должен делать, или есть лучший способ? Я также использую Open Frameworks, если что-нибудь из этой библиотеки поможет.
#include <iostream>
#include <ctime>
using namespace std;
int main()
{
int SpriteX = 1;
int SpriteTime;
int SpriteRemainder;
int SpriteRemainder2;
int MoveSprite = 0;
while (1)
{
SpriteTime = clock() * 0.01; //Adjusting the clock() multiplier doesn't seem to do all that much either
//This is too fast
SpriteRemainder = SpriteTime % 2;
//This is too slow
SpriteRemainder2 = SpriteTime % 3;
switch (SpriteRemainder) {
case 0:
if (MoveSprite == 0) {
SpriteX += 1;
MoveSprite = 1;
}
break;
default:
MoveSprite = 0;
break;
}
if (SpriteX >= 11) {
SpriteX = 1;
}
cout << SpriteX << endl;
}
}