リファレンス URL:ds_exists(ind, type);

「ブーリアン (Boolean) 」として戻り値

アクセサリは配列を利用しているが、データ型として判定することができず is_array 関数が使えません。アクセサリを型判定すると実数型となるのは、GMS 内部でアクセサリを型ではなく「ID」で管理しているからです。※
※ これについてはデバッガから確認できます

アクセサリを判定する場合「型」ではなく ds_exit 関数で存在するか否かを判断します。

アクセサリには六つの種類のデータ構造があり、それぞれが定数化されています。

定数 詳細
ds_type_list リスト/挿入と削除が容易な一次元配列
ds_type_map マップ(別名としてハッシュ/辞書など
ds_type_grid グリッド(別名:表とかテーブル)二次元配列
ds_type_stack スタック/後入れ先出し:LIFO(last in first out)
ds_type_queue キュー/FIFO(First In First Out)/stackの逆
ds_type_priority 優先度付き待ち行列/ソートなど
この関数の戻り値はブーリアンなので、判定が真の場合 true、偽の場合 false が返ります。しかし GMS/GML にはブーリアン型が存在しないため、厳密な型としては実数型である 1(true)か 0(false)が返ってきます。 スクリプト・サンプル
if !ds_exists(ai_grid, ds_type_grid) { var a,b,c; a = room_width; b = room_height; c = 32; ai_grid = ds_grid_create( a/c, b/c); }; // 変数に判定かけてから、無かったら作成するというサンプル
Functions/ds_exists

Leave a Reply

Your email address will not be published. Required fields are marked *