Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Dim OldTickCount As Long
Public Sub ControlSpeed(Num As Long)
Do While GetTickCount - OldTickCount < Num
Sleep 1
DoEvents
Loop
OldTickCount = GetTickCount
end sub
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Dim OldTickCount As Long
Public Sub ControlSpeed(Num As Long)
Do While GetTickCount - OldTickCount < Num
Sleep 1
DoEvents
Loop
OldTickCount = GetTickCount
end sub
示例一:
Do While True
Call UpdateFrame() ' 更新每帧的数据
Call RenderFrame() ' 渲染帧
Loop
示例一的游戏速度是无法控制的,基本上机器有多快游戏速度就有多快
示例二:
Do While True
If GetTickCount - OldTickCount >= Num Then
Call UpdateFrame() ' 更新每帧的数据
OldTickCount = GetTickCount
End If
Call RenderFrame() ' 渲染帧
Loop