投稿
NoB NoB777
BUTTON()関数の仕様に関する質問になります。 BUTTON()では、bit0〜bit12に各ボタンが対応し、押されたbitが1となる仕様になります。 プチコン3号の作成元であるSmileBoom社が作成した「GAME3JUMP(ジャンプクン)」のコード内に下記のようなコードがあります。 BTN = BUTTON() IF BTN AND &HFF0 THEN BREAK 上記は十字キー(bit0〜3)以外が押されたらループ制御を抜けるという意味のコードです。 ■質問 BUTTON()はbit0〜bit12までの13桁あるため、判定に使用する16進の値は&H1FF0ではないでしょうか? ※論理演算に疎く、また、手元に拡張スライドパッドが無いため、実機確認できず質問させていただきました。
1そうだね
プレイ済み
返信[1]
親投稿
ゆうたん yu-tan-sama
拡張スライドパッドはXONしなければ有効にならず入力も入ってこないから問題にならないということではないでしょうか? もちろんその理屈の場合、ZRボタンのビットもANDとってるのはサンプルとしてどうなのよ?ってところで気になるところではありますけど…
0そうだね
プレイ済み
返信[2]
親投稿
NoB NoB777
ゆうたんさん、ありがとうございます。 なるほど!そもそも拡張スライドパッドはXONしなければいけないのですね。でもZRボタンのビットだけAND取っているのはやはり変だということも分かりました。ありがとうございます!
0そうだね
プレイ済み
返信[3]
親投稿
厳密にはNoBさんの考えている事で合ってると思います。十字キー以外という意味ではサンプルのコードは不備がある感じですが、ゆうたんさんの言うように拡張スライドパッド用のボタンなので実害はほとんど無い、みたいな感じでしょうね。 bit4〜bit12までの9桁をマスクするANDという意味では、&H1FF0の方が正しいでしょうね。
0そうだね
プレイ済み
返信[4]
親投稿
NoB NoB777
でんぺんさん、ありがとうございます。 XONの存在を知っていれば違和感のあるコードではありますがスルーできた問題でした。勉強になりました!
0そうだね
プレイ済み
返信[5]
親投稿
おちゃめ ochame_nako
このプログラム(JUMP KUN)では考慮する必要はないですが、STARTやSELECTボタンも8192で取得可能です。
0そうだね
プレイ済み
返信[6]
親投稿
NoB NoB777
マニュアルにも書いてない貴重な情報をありがとうございます!
0そうだね
プレイ済み