gpt4 book ai didi

design-patterns - 游戏和渲染逻辑分离

转载 作者:行者123 更新时间:2023-12-03 07:29:24 25 4
gpt4 key购买 nike

将渲染代码与实际游戏引擎/逻辑代码分开的最佳方法是什么?把它们分开是个好主意吗?

假设我们有一个名为 Knight 的游戏对象。骑士必须在屏幕上呈现给用户才能看到。我们现在有两个选择。要么我们给骑士一个Render/Draw我们可以调用的方法,或者我们创建一个渲染器类来处理渲染所有骑士。

在将两者分开的情况下,Knight 是否应该仍然包含渲染他所需的所有信息,或者也应该将其分开?

在我们创建的最后一个项目中,我们决定让渲染对象所需的所有信息都存储在对象本身中,但是我们有一个单独的组件来实际读取该信息并渲染对象。该对象将包含诸如大小、旋转、缩放以及当前正在播放的动画等信息,并且基于此渲染器对象将组成屏幕。

像 XNA 这样的框架似乎认为加入对象和渲染是一个好主意,但是我们害怕被绑定(bind)到特定的渲染框架,而构建一个单独的渲染组件可以让我们在任何给定的时间更自由地更改框架。

最佳答案

我会创建一个单独的 KnightRenderer类(class)。好处:

  • 游戏逻辑和渲染之间的清晰分离。 Knight他自己甚至可能在游戏服务器上运行,而对渲染一无所知。
  • 更小、更简单的类,只关注一项功能。

  • 一切 KnightRenderer需要了解 Knight (position, status) 必须在 Knight 中公开可读.

    特定于渲染的属性将进入 KnightRenderer类(class)。例如,也许你想让骑士在被击中时闪烁,所以你需要存储一个计数器或时间值。

    关于design-patterns - 游戏和渲染逻辑分离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2756655/

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