【2D】ゲーム作成ツールGameMaker part3【マンセー】
■ このスレッドは過去ログ倉庫に格納されています
0548名前は開発中のものです。
2008/12/06(土) 21:06:12ID:eG4vVrw21. 主人公とすべての敵のインスタンスIDをキューに入れる
2. キューからインスタンスを一つ取り出し、そのインスタンスに行動させる
3. 行動が終わったら2に戻る。キューが空になっていたら1に戻って最初から
具体的にどう実装するかだけど、まずコントローラオブジェクトを一つ用意して
次のように処理させる。
(ds_queue使ってもいいけど、レジストしてないかもしれないので配列で実装してみた)
・Createイベントで以下の変数を用意
global.current_id = noone; // 現在行動しているインスタンスのID(nooneなら誰もいない)
queue_size = 0; // キューの中身の要素数
queue_pos = 0; // キューの何番目まで処理したか
・Stepイベントで次のように処理
if (!instance_exists(global.current_id)) { // 行動しているインスタンスがいない場合
if (queue_pos >= queue_size) { // キューが空だったら……
queue[0] = obj_player.id; // 先頭に主人公のIDを入れ……
queue_size = 1;
with (obj_enemy) { // 他のすべての敵もキューに入れる
other.queue[other.queue_size] = id;
other.queue_size += 1;
}
queue_pos = 0;
}
// キューから一つ取り出して行動を開始させる
global.current_id = queue[queue_pos];
queue_pos += 1;
}
主人公と敵のインスタンスは
・global.current_id == id だったら自分が行動する
・行動が終わったらglobal.current_idをnooneに戻す
とすればいい。
■ このスレッドは過去ログ倉庫に格納されています