投稿
もやしもどき Pseudomoyashi
ボタン入力判定用の関数を作ってみました。 判定したいボタンを文字列で指定できる(パッと見分かりやすくなる)というだけのものですが、「複数ボタンを同時に押した瞬間」みたいな判定がちょっといい感じにできるようにもしています。
0そうだね
プレイ済み
返信[1]
親投稿
もやしもどき Pseudomoyashi
使い方: 画像のような感じで。 戻り値は指定条件を満たしていればゼロ以外の値、そうでなければ0を返すので、そのままIFに入れて使えます。
0そうだね
プレイ済み
返信[2]
親投稿
もやしもどき Pseudomoyashi
引数 BSTR$:判定したいボタンを文字列で指定 - "↑↓←→ABXYLRlr"を認識します(ZL,ZRは小文字のl,r) - 複数の文字を含んでいればそれらの同時押しを判定 - 末尾に">"があると押された瞬間、"<"があると離された瞬間、それ以外は現在押されているかを判定 B0:現在のボタン入力情報 - 現在のボタン情報(BUTTON(0)で取れる値) BC:直前のボタン情報 - 一つ前のフレームにおけるボタン入力情報 - 押された瞬間や離された瞬間の判定に用いるので、それらが必要無ければ0を入れておけばいいです
0そうだね
プレイ済み
返信[3]
親投稿
もやしもどき Pseudomoyashi
引数BCに与える直前のボタン情報は、 一応`(BUTTON(0) AND NOT BUTTON(2)) OR BUTTON(3)`とかやれば現在のBUTTON関数から求めることはできますが、 そんなことするより自前で記録するようにした方が早いですしプログラムが60fpsでない際の判定も安定させられます また、関数として公開している関係上ボタン入力情報B0,BCを引数として与えていますが、 実際使うときはグローバル変数を直接参照するようにすれば呼び出しの記述をもっとシンプルにできるかと思います。その辺りはお好みで修正を。 (B0,BCは20行目以降のRETURNでしか使っていません)
0そうだね
プレイ済み