我应该使用Objects for Tiles吗?

时间:2013-05-01 09:38:05

标签: c++ coding-style

我正在制作一个小型2D游戏,其中有一个可以跳跃的角色(侧卷轴)。现在游戏中的等级是由瓷砖制成的(马里奥像?)。现在我的角色可以跳跃但是他无法着陆(因为瓷砖仍然不存在)。

我的问题是,我应该创建类的tile实例(看起来相当OO)吗?我想出的另一个选择就是将瓷砖绘制到水平面并制作保持位置的矩形,但我觉得这会让它们很难赋予它们特殊的属性。喜欢:可以被破坏,是坚实的吗?

任何人都有任何替代解决方案来实现瓷砖?

1 个答案:

答案 0 :(得分:3)

当然。

tile是程序逻辑中的实体。这些实体自然地对应于对象。虽然当然并非所有类型的实体都必须由其自己的类来表示,但实际上并没有一个合理的替代方案。

在某种程度上,问题甚至没有意义,因为面向对象的整个要点是所有都是一个对象。你的问题可能更像是瓷砖是否应该由一个类代表。但同样,答案是肯定的:否则你的瓷砖对象的推理会变得很难:你会有*不相交(数据(坐标,表示,动作)对应一个瓷砖。因为这些数据是不相交的,所以很难推理关于对象的连贯性。你不能编写将tile视为逻辑实体的代码。

关于您的替代方案:

  

我提出的一个替代方案就是将瓷砖绘制到水平面并制作保持位置的矩形,但我觉得这会让它们很难赋予它们特殊的属性。喜欢:可以被破坏,是坚实的吗?

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

  

结构

结构和类在C ++中是相同的(除了用于本讨论的无关细节)。

  

从屏幕上阅读瓷砖

就像你的第一个选择,这个没有任何好处。

在某种程度上,一旦你掌握了编程,这个问题就很难解释,因为(无论你是否在寻找面向对象的解决方案),用对象表示瓦片甚至都不是< em> choice ,它是自动的。