0

我无法在标题中很好地描述这个问题。如果某人具有编辑权限并且可以更好地表达它,请随意。

所以我有一个不错的小地形,它是可破坏的,但如果有人,比如说,打破一棵树,我怎样才能让它在他们的库存中添加一棵树?

我不是在寻找代码,只是一种方法。

每个方块都有自己的类,都继承自基类 Block,当方块被破坏时,它会掉落一种可拾取的婴儿方块。

我能够做到这一点,但我很困惑,因为这个想法是你可以打破块并将它们放置在其他地方(是的,有点像 Minecraft),那么我该如何让这个库存系统工作呢?我想了两天,一无所获。

4

2 回答 2

4

物品需要某种 ID 代码。你显然已经有了一个来存储世界本身。

当你砍掉它时,它有一种“树”。

“树” + 砍 => “砍树”

当它被拾起时,您从世界中移除砍伐的树木图形并将砍伐的树木物品放入玩家的库存中。

于 2011-10-14T22:43:22.283 回答
1

我认为使用一些伪代码会更容易,而不是用文字来解释它:

public enum MaterialType
{
    Wood,
    Stone,
    Count // this should always be the last one
}

public class Block
{
    MaterialType m_type;
}

public class Player
{
    MaterialType m_inventory[MaterialType.Count];
}

// call this when you break a block
public class World
{
    public void OnBlockDestroyed()
    {
        player.m_inventory[block.m_type]++;
    }
}
于 2011-10-15T00:32:45.140 回答