gpt4 book ai didi

model-view-controller - 游戏 : Who is responsible for display?

转载 作者:行者123 更新时间:2023-12-03 14:52:51 26 4
gpt4 key购买 nike

实体应该知道如何绘制自己吗?我曾经使用过这种方法:它很简单而且有效,但是在学习了 MVC 模式后,我对此感到不安。当所有的显示逻辑都埋在模型中时,很难改变艺术风格。

可以引入一个 View 类,它将级别作为参数并绘制它,但这意味着它必须识别实体类型并引入“switch”语句,我了解到这也很糟糕。

应该在哪里放置绘图代码,以一种可扩展、易于更改、清洁和干燥的方式?

最佳答案

随着各种工作室和团队开始使用新引擎,这个问题在游戏开发中仍然经常出现。

简短的回答是,这取决于您的游戏实体的复杂程度。对于简单的实体,这并不重要。

当您进入更复杂的实体时,您必须重新考虑您的方法。通常,您需要抵制让 uber 循环遍历每个实体并调用一些更新/渲染/任何函数的冲动。除非每次更新、渲染或任何层次结构都完全相同,否则这根本无法扩展。这对于像 Geometry Wars 这样的游戏来说很好,但对于比这更复杂的游戏就不行了。

你想要做的是给最通用的实体集合提取一个使用特定的遍历。例如,如果您想渲染场景,您应该有一种方法从实体集合中提取所有可渲染实体,然后以任意可批处理的顺序渲染所有实体。物理、碰撞、人工智能等也是如此。

一些有用的链接:

http://cowboyprogramming.com/2007/01/05/evolve-your-heirachy/
http://research.scee.net/files/presentations/gcapaustralia09/Pitfalls_of_Object_Oriented_Programming_GCAP_09.pdf

我强烈推荐两者;首先是从组件构建游戏实体的设计原理,即渲染组件、物理组件、AI 组件。第二个是各种游戏实体方法的性能特征。

关于model-view-controller - 游戏 : Who is responsible for display?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2194273/

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