跳帧的定义是:当游戏实际运行帧数(时间)和理论运行帧数(时间)不同的时候,进行 work()函数的增加循环次数的处理, 也就是取消掉了显示帧.
c代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
//画一个帧
void
drawFrame(){
TIMEVALUE TimeDiff = subtractTime(GetTimeNoW , WorkTime );//WorkTime为实际游戏工作时间
int
difftimes = GetFrame(&TimeDiff);
//将时间差转换成帧数
while
(workframes--){
update_input();
//处理用户操作
work();
//work()和draw()是一个帧的两个先后部分
addFrames(&difftimes ):
//diff表示帧的差数.由游戏实际运行帧数-理论运行帧数得到
}
...上下文处理
draw();//显示帧
...上下文处理
}
|