我有一个程序,我在屏幕上绘制图像。这里的绘制函数是按帧调用的,其中我有所有的绘图代码。
我编写了一个图像排序器,它从图像索引中返回相应的图像。
void draw()
{
sequence.getFrameForTime(getCurrentElapsedTime()).draw(0,0); //get current time returns time in float and startson application start
}
在按键时,我从第一张图像 [0] 开始序列,然后继续。因此,每次我按下一个键时,它都必须从 [0] 开始,这与上面的代码不同,它基本上使用 currentTime%numImages 来获取帧(这不是图像的起始 0 位置)。
我正在考虑编写一个自己的计时器,基本上可以在每次按下键时触发,以便时间始终从 0 开始。但在此之前,我想问是否有人对此有更好/更简单的实现想法?
编辑
为什么我不只使用计数器?我的 ImageSequence 中也有帧率调整。
Image getFrameAtPercent(float rate)
{
float totalTime = sequence.size() / frameRate;
float percent = time / totalTime;
return setFrameAtPercent(percent);
}
int getFrameIndexAtPercent(float percent){
if (percent < 0.0 || percent > 1.0) percent -= floor(percent);
return MIN((int)(percent*sequence.size()), sequence.size()-1);
}