gpt4 book ai didi

c++ - Firefox 与我的计时器交互?! (跟进)

转载 作者:行者123 更新时间:2023-11-28 08:21:00 28 4
gpt4 key购买 nike

首先,请阅读我认为我修复了它的旧帖子。 (没时间可以跳过)

Firefox interacts with my timers somehow ?!?! This is crazy ^^

对于那些不想阅读的人,我只是总结一下:Firefox 在运行时弄乱了我的计时器,所以我不得不按照 stackoverflow 成员的建议从 timeGetTime() 切换到 QueryPerformanceCounter()。而且它仍然遇到同样的问题(firefox 运行使一切都“快进”)。我现在不明白为什么。也许我在这里搞砸了:

ULONG CTimer::time()
{
__int64 temp;
QueryPerformanceCounter((LARGE_INTEGER*)&temp);
return (ULONG)(temp*1000/freq);
}
// where freq is the one queried with QueryPerformanceFrequency()

有人知道吗?也欢迎任何提示。

最佳答案

您如何计算运动?如果您使用 QueryPerformanceCounter 准确计算增量时间(自上次报价以来的时间),并据此计算运动,您应该没问题。所以每个对象每刻移动的距离应该是 deltatime * speed。

我最好的猜测是你没有这样做,而是基于帧率,当你打开 Firefox 时帧率会改变(无论出于何种原因)。显示您的代码会很有帮助。

还有一件事 - QueryPerformanceCounter/Frequency 对于不同的内核可能不同 - 你的应用程序是多线程的吗?如果是这样,打开 Firefox 可能会导致 Windows 将您的应用程序转移到执行不同的核心,其中 QueryPerformanceCounter/Frequency 是不同的。您必须确保始终从同一个处理器核心调用它们(在调用它们的线程上设置处理器关联)。

关于c++ - Firefox 与我的计时器交互?! (跟进),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5844070/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com