我正在制作这个 2-D 游戏,我希望能够在其中构建结构。玩家必须能够从某些结构中受益。今天的比赛是这样的:
(蓝点是玩家,其他点是ais)
我创建了一个名为 Structure 的类和其他三个继承自 Structure 的类。这些类或多或少是空的。游戏的瓷砖有自己的名为 Tile 的类。在这堂课中,我写了一些东西,但感兴趣的代码是这样的:
public LinkedList<Structure> Structures = new LinkedList<Structure>();
当我构建一个结构(例如壁炉)时,代码如下所示:
Bundle.map.tile[Bundle.player.X, Bundle.player.Y].Structures.
AddFirst(new Fireplace());
我不确定的部分是如何检查列表是否包含例如壁炉(这是一个名为 Fireplace 的类)或任何其他建筑物。例如,如果玩家在瓷砖上发现壁炉,他/她将重新获得温暖。这不起作用。也许我对所有这一切都有错误的方法,无论哪种情况,请为我提供一个代码示例。
答案结论:
bool anyFireplace = Bundle.map.tile[Bundle.player.X, Bundle.player.Y].Structures.OfType<Fireplace>().Any();
if (anyFireplace)
{
Warmth = MaxWarmth;
}
else
{
if (Warmth > 0)
{
Warmth--;
}
else
{
HP--;
}
}