【ゲーム制作】Javaの配列でつまづいた

ゾンビゲーの開発を引き続き行っています。
が、しばらくプログラムでハマっていました。

ゾンビや弾を自作クラスを定義し、そのクラスを配列として持って管理しようとしていたんですが、配列を使おうとすると例外エラーのNullPointerExceptionが発生してしまう・・・

    private final int ZOMBI_MAX = 30;
    private Zombi[] _zombi = new Zombi[ZOMBI_MAX];

    public init()
    {
        for( int i = 0; i < _zombi.length; i++ )
        {
            _zombi[i].init();
        }
    }

もうね・・・何が何だかな状況だったんですが、intやbooleanなどの基本データ型での配列と同じ様に出来ると思っていたのが、そもそもの間違いでした。

オブジェクト型での配列の場合は、配列を生成した後に配列の各要素に対してのオブジェクトの生成が必要だったんですね。

    private final int ZOMBI_MAX = 30;
    private Zombi[] _zombi;

    public ZombiManager() // コンストラクタ
    {
        _zombi = new Zombi[ZOMBI_MAX];
        for( int i = 0; i < _zombi.length; i++ )
        {
            _zombi[i] = new Zombi();
        }
    }

    public init()
    {
        for( int i = 0; i < _zombi.length; i++ )
        {
            _zombi[i].init();
        }
    }

ゾンビ管理クラスのコンストラクタでゾンビ配列の各要素に対してゾンビオブジェクトを生成することで、NullPointerExceptionがやっと発生しなくなりました。

いやぁもう、こんな初歩の初歩でつまづいてしまうとはトホホです(TーT;

スポンサーリンク

シェアして頂けると喜びます!

フォロー頂けると嬉しいです(o^ワ^o)