2010-07-27 134 views
3

当我玩一个视频游戏(任何像赛车游戏或包装男人或其他任何旧游戏)如何根据程序中发生的事情显示在屏幕上?是否有一个大的RenderEverything方法一旦被一个框架执行?尽管如此,这让我觉得这是一种缓慢的方式。视频游戏如何在我的屏幕上显示?

编辑:作为一个跟进的问题: 如何做渲染计算机定义帧都渲染GRAPHIS和游戏activites做就像在房间的字符慢慢地走。像是有一些时钟不断增加,每一个渲染和每一个动作都是t的函数吗?如果是的话,相对于它运行的系统如何定义?

我打算让这个问题有些同义:当我在屏幕上的光标现在每秒闪烁两次它怎么知道第二个是什么?另外在Java中,我将如何使显示一行文本然后等待一秒和desplays另一行的程序? (perahps这太太太)

回答

1

他们有一个循环。在这个循环中,它被称为渲染图形的方法,另一个用于处理逻辑(并获取输入)。因此,此方法将基于输入和图形方法根据已计算的数据计算所有内容 - 例如应该打印的内容及其位置。

这就是你问的吗?

游戏开发的问题应该在此处进行:https://gamedev.stackexchange.com/ :)

1

当我玩视频游戏(任何老游戏像一个赛车游戏或包的人或其他)如何一切都得到了显示在屏幕上就该计划的进展而言?是否有一个大的RenderEverything方法一旦被一个框架执行?

取决于游戏。 2D游戏可能能够保留以前帧中呈现的部分场景,尤其是没有滚动屏幕的旧游戏。 3D游戏很可能重画整个屏幕。同样好的游戏永远不会呈现的一切 - 只有可见的物体。因为渲染一切都很慢,而仅渲染可见对象的速度显着加快。

这让我觉得这是一种缓慢的方式去做这样的事情。

您可以自由尝试找到不同的方式。普通游戏重绘每一个可见的对象。非硬件加速的游戏可以跟踪未修改的屏幕区域,并重新绘制仅改变,移动等的对象。硬件加速游戏不必这样做 - 它可以在每一帧重新绘制屏幕上的所有内容。随着游戏/帧/场景复杂度的增加,在每个帧期间简单地重新绘制每个可见对象而不是追踪从前一帧改变的事物会更容易。

0

基本上就是这样。 “视频游戏”实际上是一个大型的状态机器,其状态根据帧速率更新。用户输入结合游戏规则和敌人AI会影响游戏的状态。渲染玩家对游戏的每一帧视图,而不是完整的游戏视图。

下载quake source,它在评论中提供了一些有趣的阅读内容,并且对如何构建游戏提供了很好的见解。

+0

什么是地震?这是一款游戏吗? – David 2010-07-27 10:16:04

+0

Wiki或idSoftware。谢谢,现在我感觉自己像一个万岁的朋友:-) – 2010-07-27 10:27:55

+0

@David:“什么是地震”。那么,它是PC的第一个完整的3D游戏之一(如果你不介意下降,那就是)。由idsoftware于1996年制造,仍然可以购买。 http://en.wikipedia.org/wiki/Quake_(video_game)。如果你还没有听说过它,你可能应该感到羞耻。 – SigTerm 2010-07-27 13:19:08

相关问题