变速齿轮的原理是啥?

可爱的芒果酱 2014-01-09 03:02:43
有了他就能改变游戏的速度,原理是啥啊?
...全文
1436 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
buyong 2014-01-10
  • 打赏
  • 举报
回复
变速齿轮利用HOOK API实现针对Windows主流应用程序的变速功能, QueryPerformanceCounter, GetTickCount, timeGetTime 3个API实现的完美加速。 为了实现变速效果,按键精灵作者采用公式算法实现了加速减速效果,公式如下: Result= 上次返回时间 + Round((当前返回时间 - 上次正常时间) * Power(2,倍数))
可爱的芒果酱 2014-01-10
  • 打赏
  • 举报
回复
引用 8 楼 buyong 的回复:
变速齿轮利用HOOK API实现针对Windows主流应用程序的变速功能, QueryPerformanceCounter, GetTickCount, timeGetTime 3个API实现的完美加速。 为了实现变速效果,按键精灵作者采用公式算法实现了加速减速效果,公式如下: Result= 上次返回时间 + Round((当前返回时间 - 上次正常时间) * Power(2,倍数))
说的很专业
可爱的芒果酱 2014-01-09
  • 打赏
  • 举报
回复
引用 6 楼 vrace 的回复:
在游戏的进程里面HOOK掉系统的时间相关的函数。 游戏其实就是一个大 while.. while (1) { float delta = GetDeltaTime(); Update(delta); Render(); } GetDeltaTime() 一般就会调用系统的时间函数来决定两次循环之间的时间间隔,HOOK掉系统函数以后,就可以把这个值变大;在 Update 里面,更新坦克的位置,会使用 delta 这个时间,如果 delta 变大了,速度自然就快了。
好像懂点了
vrace 2014-01-09
  • 打赏
  • 举报
回复
在游戏的进程里面HOOK掉系统的时间相关的函数。 游戏其实就是一个大 while.. while (1) { float delta = GetDeltaTime(); Update(delta); Render(); } GetDeltaTime() 一般就会调用系统的时间函数来决定两次循环之间的时间间隔,HOOK掉系统函数以后,就可以把这个值变大;在 Update 里面,更新坦克的位置,会使用 delta 这个时间,如果 delta 变大了,速度自然就快了。
可爱的芒果酱 2014-01-09
  • 打赏
  • 举报
回复
引用 3 楼 derekrose 的回复:
如何定义游戏的速度
BIRU比如坦克走的快了,就是游戏速度快了
ForestDB 2014-01-09
  • 打赏
  • 举报
回复
修改tick?
derekrose 2014-01-09
  • 打赏
  • 举报
回复
如何定义游戏的速度
赵4老师 2014-01-09
  • 打赏
  • 举报
回复
Hook windows系统计时相关的API
是_这样吗 2014-01-09
  • 打赏
  • 举报
回复
可能是加快游戏的时间,同一时间游戏里面时间经过变快?给服务器发送的数据也会变更频繁,所以很容易被检测到吧。。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧