首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分离的GUI和游戏逻辑类层次结构?

分离的GUI和游戏逻辑类层次结构?
EN

Stack Overflow用户
提问于 2010-09-21 16:19:43
回答 1查看 1.4K关注 0票数 2

我正在Java上开发一个游戏,并希望将我的代码分离在hud/gui和游戏逻辑的包中,以便代码可以在其他项目中重用,并且要绘制的对象调用来自另一个或多个类的方法(可能是一个“渲染上下文”,如为绘图或类似的类创建的一组类),问题是我找不到实现这一点的最好方法,因为我已经研究了web (也研究了这个论坛)和设计模式,但尽管一些看起来很有趣(比如Model-View-Controller),但我找不到适合我的东西。解决这个问题的常用方法都不是。

我被告知要使对象实现一些可绘制的类接口,并在另一个类调用这个对象,一些对象实现可绘制和继承从画布,这样,如果我想以后改变对象绘制或显示另一个更好的方法,例如从awt到swing,能够重写这些类,而不需要担心我的对象代码,任何帮助都将不胜感激,提前谢谢!

EN

回答 1

Stack Overflow用户

发布于 2010-09-21 16:26:23

我所做的通常是这样的:

创建你的游戏对象,完全独立于所有可视化的东西。我将以国际象棋为例。每个棋子继承一个"GamePiece“界面,知道它是有效的走法,它是什么”颜色“(不是视觉颜色,而是它在什么”面“上),等等。但这些棋子没有任何与绘制本身相关的代码。没有。基本上,假装你在电脑里玩游戏,而不需要画它。这样设计你的整个游戏。您需要一个管理各种片段、GameBoard和抽象播放器的GameDirector。但是,仍然没有视觉表现。在设计类层次结构的具体方式上有很大的回旋余地,但要去掉视觉效果。

您可以通过引发事件来传达状态更改,这是关键。因此,当玩家移动时,会引发一个事件。当GameDirector检测到将死时,会引发一个事件,等等。

然后您就有了一个包含GameDirector的GameRender类。它监听这些事件,并相应地更新视觉场景(无论是简单的2D动画还是复杂的3D动画)。这个类可以有子组件,这些子组件负责呈现游戏的子组件,但这并不是必须的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3758460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档