GMS はマルチタッチ対応しているが、YoYo_MouseCheckButton という関数はヘルプファイルにドキュメントが無い。
version 1.4.1690 以前では利用できましたが、v 1.4.1763 以降のバージョンでは利用できなくなった関数。マルチタッチ用でしたが公式対応が無かったこともあり、ひっそりと廃止されたようです。
以下は古いバージョンの GM:S 1.4 でしか利用できない関数およびスクリプトです。現在は利用できません。
マルチタッチは同時に五つまで検出可能で、六つ以上検出できない仕様。このためループ処理する場合にもループ上限は最大 5 ということになる。
具体的な動作はマルチタッチ対応のデバイスで確認してください。HTML5 は Android 端末で動作を確認してあります。タッチした場所にオブジェクト・インスタンスを作成します。
参考動作:マルチタッチ検出サンプル(HTML5版)
リソースツリーは以下スクリーンショット参考
///TEST var a,b,c,d, i;// i はループインデックス用 i = 0; repeat(5){ if (YoYo_MouseCheckButtonPressed(i, mb_left)){ a = YoYo_MouseX(i);//mouse_x; b = YoYo_MouseY(i);//mouse_y; c = instance_create(a,b,test); /* switch(irandom_range(0,4)){ case 4: d = seta; break; case 3: d = gamma; break; case 2: d = omega; break; case 1: d = beta; break; case 0: d = alpha; break; }; */ c.sprite_index = irandom_range(0,4); //show_message(c.sprite_index); }; i++; };
sprite_index の指定について
サンプルでは単純なリソース構成なので、スプライトインデックスは直接 irandom_range 関数を使って指定します。
この自作関数処理を他プロジェクトへ組み込む場合は、コメントアウトしてある switch case を使って、スプライト名で指定した方が無難。
YoYo_Mouse 系命令について
ループ処理中でループインデックスを利用します。
マルチタッチへ対応する必要がない場合、インデックスは常に 0 を指定しておけば mouse_check_button 系の命令と同じ動作になります。