我有一个包含所有块的枚举:
enum BlockType
{
Grass, Dirt, Stone
}
我们说我有一个抽象的Block
类:
abstract class Block
{
public Position position;
public BlockType type;
}
所有的块都是这样的:
class Grass : Block
{
...
}
我现在可以轻松检查一个块是否是草:
if (block.type == BlockType.Grass)
但我也可以这样做:if (block is Grass)
这意味着我不需要拥有该变量,从而节省了RAM。
什么会更好:识别enum方式或类方式的块?
答案 0 :(得分:1)
最好的方法是永远不知道外面的块的类型。假设你想画草块绿色和石块灰色。您可以从块中请求类型,然后根据类型确定颜色,但最好拨打block.getColor
,甚至block.draw
。显然,块本身就知道它是什么,因此它可以返回正确的颜色或以正确的颜色绘制自己。
除此之外,使用类名肯定比使用枚举更好。我会处理整个枚举。然后,如果你想要添加一个类,你不必也更新枚举。