0

これらすべてにまったく新しいので、我慢してください。何がわからないのかわからない。

1 ~ 2 秒ごとに、20 のプールから 5 つのランダムなオブジェクトの列を右からスポーンさせたいと考えています。どこから始めればよいか分からないのは、少なくとも 2 列にわたって同じオブジェクトを繰り返さないようにしたい場合です。

列は右からスポーンし始め、左に進みます。最初の列は明らかに空き列ですが、最初の列のオブジェクトを 2 番目と 3 番目に配置できないようにするにはどうすればよいでしょうか。2番目から3番目と4番目などにあるものはありますか?

列 1 ~ 3 には 1 ~ 15 の番号があり、列 4 は 20 からの他の未使用に加えて、再び 1 ~ 5 を持つことができます。

これが怪物かどうかはわかりません。

4

2 に答える 2

1

おそらく、敵の 'ds_stack' を使用して、そこからスポーンします。

enemyStack = ds_stack_create();
ENEMY_AMOUNT = /*AMOUNT OF ENEMIES*/

敵の配列を作成し、「for」ループを使用してそれらを追加します。

for (var i=0;i<ENEMY_AMOUNT;i++)
{
    ds_stack_push(enemyStack,enemy[i]);
}

次に、それらをスポーンしたいとき

for (var i=0;i<SPAWN_AMOUNT;i++)
{
    instance_create(xx,yy,ds_stack_pop(enemyStack);
}

スタックを破棄することを忘れないでください

ds_stack_destroy(enemyStack);
于 2016-02-27T07:58:31.587 に答える
0

2 つのオブジェクトが等しいかどうかを比較する方法がわかりません。すべてのオブジェクトに対して、ゲーム メーカーはobject_index()関数で取得できる一意のインデックスを作成します。また、おそらく [データ構造][1] の扱い方も知らないでしょう。(この場合、配列は最適ではありません)

最初に、作成する敵をランダムに選択できるすべてのクラスでデータ構造を初期化します。次に、ランダムに 1 つを選択し、その obj をデータ構造から削除して、次のランダム ドローで選択されないようにします。

于 2016-02-15T02:26:21.117 に答える