2

我正在制作一个小型 2D 游戏,它有一个可以跳跃的角色(横向卷轴)。现在游戏中的关卡是由瓷砖组成的(马里奥之类的?)。现在我的角色现在可以跳跃但他不能着陆(因为瓷砖仍然不存在)。

我的问题是,我应该制作类的瓷砖实例(看起来很OO)吗?我想出的另一种方法是将图块绘制到关卡中并制作保持位置的矩形,但我觉得这样很难赋予它们特殊属性。比如:可以破坏,是固体吗?

任何人都有瓷砖实施的替代解决方案?

4

1 回答 1

3

当然。

瓦片是程序逻辑中的一个实体。这样的实体自然对应于对象。没有真正明智的替代方案,尽管当然不是每种类型的实体都必须由其自己的类表示。

在某种程度上,这个问题甚至没有意义,因为面向对象的全部意义在于一切都是对象。不过,您的问题可能更多的是关于瓷砖是否应该由一个类来表示。但同样,答案是肯定的:否则对你的瓦片对象进行推理变得困难:你将有 *disjoint( 数据(坐标,表示,动作)对应于单个瓦片。因为该数据是不相交的,所以很难推理连贯地了解对象。您无法编写将图块视为逻辑实体的代码。

关于您的替代方案:

我想出的另一种方法是将图块绘制到关卡中并制作保持位置的矩形,但我觉得这样很难赋予它们特殊属性。比如:可以破坏,是固体吗?

你已经注意到了缺点。这根本不是一个明智的选择,它会使琐碎的任务变得非常复杂(或不可能)。

结构

结构和类在 C++ 中是一样的(除了与本讨论无关的细节)。

从屏幕读取磁贴

就像您的第一个选择一样,这个选择根本没有任何好处。

在某种程度上,一旦你掌握了编程的窍门,这个问题就很难推理了,因为(无论你是否正在寻找面向对象的解决方案),用对象表示图块甚至不是一种选择,它是自动的.

于 2013-05-01T09:43:49.687 回答