トピック

どうしても解せない。

いま、STICKとBUTTONどっちでも収得できる。STK()を作ったんですが。BUTTON(2)みたいにスライドパットを押した瞬間だけ数値を変えるようにしたいです。長文失礼しました。
2そうだね
プレイ済み
返信[1]
親投稿
たぶんORじゃなくてANDな希ガス
0そうだね
プレイ済み
返信[2]
親投稿
細かく言うとそれはBUTTON(2)じゃないんですが。 STXが0.1ぐらいの弱押しだったら。 (色々うるさい人)
2そうだね
プレイ済み
返信[3]
親投稿
ひろきち henahenachoco
一連の処理が終わったあとに、 SXとSYを他の変数に入れておいて、(直前フレームのSX、SYを確保) その変数が0のとき、かつSXとSYが動いたときだけ反応するようにすれば、 スティックを倒した瞬間、という処理ができます。 うーん…うまく伝わりますかね…?
3そうだね
プレイ済み
返信[4]
親投稿
おちゃめ ochame_nako
「押した瞬間の取得」というのは「前回押して無くて今回押しているならば押した瞬間」と考えることができます。 これはビット演算を使えば計算が可能で変数Bに前回押したボタン情報が入っているならばNOT Bで前回押してないボタン情報が分かります。 それと今回押しているボタンとのANDを計算すれば良いのです。 ただし、前回押したボタン情報を保存するためにはグローバル変数に入れておく必要があります。DEF内でグローバル変数を使うためにはDEF外(さらに加えるとそのDEFよりも前の行)で使用する変数を宣言しておく必要があります。 このコメントを見て分からない場合は、下記に以前私が作ったDSTICK関数を用意したので参考にしてみてください。
5そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
このDSTICK関数はスライドパッドをBUTTON関数のように見立てる動作によくありがちな矩形で判定するのではなく円形で判定することでスティックをどの方向に倒しても同じように反応するという特長があります。(どの向きでも半分スティックを倒したら「ボタンを押した」と見なしている) 矩形だと縦横は反応しやすいけど斜めは反応しにくいものになります。(それを意図してやっているならば問題ないけど) そして、DSTICK(0)で通常、DSTICK(2)で押した瞬間、DSTICK(3)で離した瞬間を取得できます。 BUTTON(2)はVSYNC 1の時しか正常動作しませんが、DSTICK(2)はVSYNC 3だろうと5だろうと普通に判定が可能です。 ※このDSTICK関数を使用する前に VAR _DSTICK としてグローバル変数_DSTICKを宣言しておいてください。
4そうだね
プレイ済み
返信[6]
親投稿
有難う御座いました。
0そうだね
プレイ済み