游戏循环中游戏对象的设计模式

时间:2011-03-02 23:26:43

标签: java

我正在构建一个带游戏循环的游戏应用程序。所以我将拥有更新/绘制操作的游戏对象。我想知道组合或继承是最好的方法还是其他设计模式适用于此?另外我想知道我是否应该在游戏对象运行的区域内制作全尺寸游戏对象?例如,如果我有一个像人或汽车这样的游戏对象,并且里面说像院子这样的区域,院子本身是否也应该被建模为游戏对象呢?另一个例子是,如果我有一个拳击游戏,显然我会制作游戏对象,而戒指可能是一个画布,但是戒指是否也应该是一个全尺寸的对象呢?感觉战斗机如何击中绳索?如果是这样,更新/渲染界面将如何不同。如何在区域/外环/内外表达figher?或者从一个区域制作一个游戏对象是不是一个好主意?我希望能听到之前模仿此类事物的人。

2 个答案:

答案 0 :(得分:3)

这个问题可能更适合GameDev.StackExchange.com。无论如何,构图似乎是更易于维护的选择。 Evolve your Hierarchy是这方面的常用文章。至于区域/区域,那些仅仅是用于碰撞检测的对象,通过您所描述的内容。

竞技场对象具有渲染组件和碰撞检测组件。您不需要“区域”对象,只需使用您自己的自定义组件实例化对象即可。您所有的绳索击打/响铃进入/响铃离开逻辑都是基于竞技场和战斗机的碰撞组件被检测为碰撞,碰撞被分派到两个物体,两个物体响应该碰撞。

答案 1 :(得分:0)

我的意见: 尝试定义简单的游戏对象,它将具有所有主要属性,如draw(),update()..例如,如果你想制作一个简单的碰撞游戏,其中所有对象都是圆形,你应该添加像checkCollision(GameObject other)这样的函数,和双x,y,r。现在你可以轻松地继承这个类并制造球,人,怪物......并将它们称为游戏对象,而不是每个人分开。如果你想像不同的碰撞区域那样做一些更复杂的东西那么它的gameObject类就会有相同的想法,它会有Area和checkCollision(GameObject其他),你再次从这里继承并定义它们自己的区域但是将它们全部称为游戏对象。 有很多开源的java游戏比赛,你可以谷歌和检查他们如何做游戏,并从中学习。 祝你好运。