gpt4 book ai didi

XNA 项目 - 谁负责绘图?

转载 作者:行者123 更新时间:2023-12-04 23:56:56 26 4
gpt4 key购买 nike

我只是在玩 XNA,我需要在每一帧中绘制几个不同的模型。目前,Game 对象持有对我所有模型的引用,并一个接一个地绘制它们。每个人都有自己不同的绘制方式 - 一个有两个单独的纹理,另一个可能镜像到另一侧,等等。

我想知道是否可以只添加一个

public void Draw(SpriteBatch spriteBatch)

我所有模型的方法(当然来自 BaseModel),并让每个类负责绘制自己,或者我应该坚持让类根据 Update 方法上的事件(KeyboardState)设置它们的数据,并将所有图形逻辑保留在 Game 类中。

有没有首选的方法来做到这一点?

最佳答案

通常,我有一个基类,其中包含 BaseModel、纹理数据、旋转和缩放数据等。对于游戏中的每种类型的转换,我创建一个派生类。基类提供了一个 Draw 方法,默认情况下,该方法使用类中给出的纹理、旋转和缩放数据来绘制模型。派生类可以覆盖它来绘制他们喜欢的 Actor 。

然后,我有一个 DrawableGameComponent 作为我的场景图。它包含所有事件参与者对象的列表。在组件的 Draw 和 Update 方法中,我遍历 Actor 列表并调用它们的 Draw 和 Update 方法。

关于XNA 项目 - 谁负责绘图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/782006/

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