gpt4 book ai didi

graphics - 经典的侧滚轮是如何实现定时事件和动画触发器的?

转载 作者:行者123 更新时间:2023-12-04 14:19:21 31 4
gpt4 key购买 nike

我一直对 Snes 上的 super 马里奥系列感到惊讶。我认为它主要是用 Z80 组装制造的。但是由于没有实时时钟,他们究竟是如何通过组装而不是实时时钟来管理所有这些定时的、动画的事件的呢?

谢谢

最佳答案

要记住的一个重要概念是 VSync 速率。这是电视中的电子枪(或现代电视中的等效物)完成屏幕绘制并缓慢移动到屏幕顶部的频率。

因为这是以恒定速率发生的(NTSC 中为 60 次/秒,PAL 中为 50 次),大多数游戏都使用它作为计时器,代码大致相当于:

void main() {
while(true) {
updateGame();
updateSprites();
waitForVSync();
}
}

显然,这被大大简化了,但这就是正在发生的事情。有些游戏非常复杂,以至于它们花费的时间太长而错过了 VSync 时期。在这种情况下,他们会等待第二个 VSync,从而以 30 (/25) FPS 运行。

有时,您会注意到 NES 游戏的速度变慢(例如)。这是因为工作负载太重,以至于在单个 Action 帧中丢失了几个 VSync 周期。

但是,是的,这就是时间如何在旧游戏机上工作的要点(实际上,即使是许多新游戏机和 PC 游戏也使用相同的系统,而不仅仅是旧游戏机!)

关于graphics - 经典的侧滚轮是如何实现定时事件和动画触发器的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4169396/

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