我正在做一款游戏,跟随在线教程。目前我已经在系统中添加了一些FPS,还有一个简单的动画,它使用精灵的部分,就像这样:
if( frameCount > 12 )
frameCount = 0;
//hero frames
SDL_Rect clip[ 13 ];
clip[ 0 ].x = 0;
clip[ 0 ].y = 0;
clip[ 0 ].w = 44;
clip[ 0 ].h = 39;
clip[ 1 ].x = 51;
clip[ 1 ].y = 0;
clip[ 1 ].w = 44;
clip[ 1 ].h = 39;
clip[ 2 ].x = 102;
clip[ 2 ].y = 0;
clip[ 2 ].w = 44;
clip[ 2 ].h = 39;
...
...
SDL_BlitSurface( hero, &clip[ frameCount ], destination, &offset );
frameCount++;
现在这个程序可以完美运行,while循环的每次迭代都会播放动画中的下一帧(顺便提一下,这个动画是角色类的一部分)。
我面临的问题是动画的速度。它以游戏当前的FPS为速度,这个FPS是60。我想单独控制玩家动画的速度,这样我就可以把它的速度降到合理的范围内。
有人能提供关于如何实现这一点的建议吗?
注:总共有13帧。
SDL_Ticks()
,对吧? - hbobenicio