0

タイトルでは問題を十分に説明できません。誰かが編集権限を持っていて、それをより適切に表現できる場合は、お気軽に。

それで、私は素敵な小さな地形を手に入れました、それは破壊可能であり、すべてですが、誰かが木を壊した場合、どうすれば彼らのインベントリに木を追加できますか?

私はコードを探しているのではなく、ただのメソッドを探しています。

各ブロックには、基本クラス Block から継承した独自のクラスがあり、ブロックが破壊されると、一種のピックアップ可能な子ブロックがドロップされます。

私はこれを行うことができますが、ブロックを壊して別の場所に配置できるので混乱しています (ええ、マインクラフトのようなものです)。この在庫システムを機能させるにはどうすればよいですか? 2日間考えましたが、何も得られませんでした。

4

2 に答える 2

4

アイテムにはある種の ID コードが必要です。明らかに、世界自体を格納するためのものが既に 1 つあります。

あなたがそれを刻んだとき、ブロックは「木」のタイプを持っていました。

「木」+チョップ=>「切り倒した木」

それを拾うと、刻んだ木のグラフィックを世界から取り除き、刻んだ木のアイテムをプレイヤーのインベントリに入れます。

于 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 に答える