gpt4 book ai didi

java - 为 Java 游戏生成简单的场景图

转载 作者:行者123 更新时间:2023-12-01 05:29:22 25 4
gpt4 key购买 nike

我正在使用 OPENGL(通过处理)用 Java 开发一个相对简单的游戏。我使用的是典型的 MVC 模式,其中游戏更新使用观察者模式传递到处理 Applet。我想实现一个相对简单的场景图,程序的模型端可以更新并且 View 端可以读取。到目前为止一切都很好,但场景图对我来说是新的,我一开始就很难想出一种生成场景图的合适方法。

模型方面目前有两个游戏实体集合,一个用于游戏中的单位,另一个用于环境对象。我可以简单地迭代这些并生成节点以添加到场景图中。我不确定的是当这些实体之一被更改或破坏时该怎么办。我是否再次生成整个树(似乎效率很低),或者每个实体是否应该“知道”其场景节点并能够在需要时更新它?

有人对如何生成场景图有任何一般建议或 Material 链接吗?

最佳答案

无论如何,图形对象和游戏实体之间必须有联系。因为否则您将无法将用户事件(例如鼠标单击)从场景转换为逻辑。

所以我建议引入模型和 View 之间的连接。而且,恕我直言,不是通过创建一个完美的 MVC 来隐藏另一个 MVC,因为这会在开发的起始阶段增加太多麻烦。只需将图形对象的链接(或者更好的是,与您想要对图形执行的操作的界面)添加到游戏实体就应该适合您。

它可能如下所示:

interface UnitView {
void add(Point position);
void move(Point position);
void remove(Point position);
void setOnClick(Runnable callback);
}

class GlUnit implements UnitView extends GLSceneObjectOrWhateverItCalled {
//this class implements all drawin and animation; and handles calls from model
//through UnitView interface
}

class Unit {
void setView(UnitView view); // this method is called by manager which generated scene

// here is your implementation of unit logic
}

关于java - 为 Java 游戏生成简单的场景图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9247340/

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