【发布时间】:2011-09-15 16:31:46
【问题描述】:
所以我正在开发一款游戏,遵循在线教程。目前我在系统中内置了一些 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 为 60。我希望能够单独控制播放器动画的速度,以便将其减慢到合理的速度。
有人对我该如何做这件事有任何建议吗?
注意:总共有 13 帧。
【问题讨论】:
标签: c++ animation sdl frame-rate