1

GML を使用して部屋のプールから部屋を選択するゲームを作成しようとしていますが、次のエラーが発生します。

オブジェクト obj_control のイベントの作成のアクション番号 3 で致命的なエラーが発生しました:

room_goto 引数 1 の型が正しくありません (5) gml_Object_obj_control_CreateEvent_3 (20 行目) で数値 (YYGI32) が必要です - room_goto(returnRoom)

pool = ds_list_create()

ds_list_insert(pool, 0, rm_roomOne)
ds_list_insert(pool, 1, rm_roomTwo)
ds_list_insert(pool, 2, rm_roomThree)
ds_list_insert(pool, 3, rm_roomFour)

var returnIndex;
var returnRoom;

returnIndex = irandom(ds_list_size(pool))
returnRoom = ds_list_find_value(pool, returnIndex)

if (ds_list_size(pool) == 0){
room_goto(rm_menu_screen)
}else{
room_goto(returnRoom)
}

数字が必要だというエラーメッセージは表示されません。

4

1 に答える 1

0

これは確かに奇妙です...これは実際に機能するはずだと思います..しかし、テストするGMが周りにいません:(

今のところ、「choose」を使用してこれを解決することもできます。これにより、リストが保存されます(リストを削除してクリーンアップしないため、メモリが節約されます-したがって、リストはメモリに常駐します)

room_goto(choose(rm_roomOne, rm_roomTwo, rm_roomThree, rm_roomFour));

choose基本的にあなたが探していることを正確に行います。ただし、アイテムのグループを再利用している場合は、最善の方法ではないかもしれません.

于 2016-06-02T23:42:49.953 に答える