btn()関数を学び直す

btn()関数の謎 PICO-8
btn()関数の謎

PICO-8の btn() 関数をあまり良く知らずに今まで来たことに気付いて、ちゃんと調べて動作確認をしました。

PICO-8には、ボタンに対応した番号があります。

左は0、右は1、上は2、下は3となっています。

実行されたときに、左が押されているかいないかをチェックするには、

a = btn(0)

とすると、aには左が押されていれば TRUE 、押されていなければ FALSE 、とbool値( TRUE か FALSE のどちらか)が帰ってきます(右をチェックするなら btn=(1) )。

さて、ここで

a = btn()

と、()の中に何も書かないとどうなるでしょうか?

私ははじめ、押されたキーに振られた数字が返ってくると思っていました。

つまり、左に押されていれば 0 が、右に押されていれば 1 が。

しかし、実際に実行すると左を押すと 1 が、右が押されていると 2 が、帰ってきます。

そして、上だと 4 、下だと 8 、Zは 16 、Xは 32 が帰ってきます。

感の良い方ならお気付きでしょう! そう、各ビットがボタンに対応しています。

矢印キーを全て押すと 15 が、ZとXも一緒に押せば、63 が帰ってきます。

btn()の結果を表示させてみました。

btn()で方向キーを全て押すと15になる
btn()で方向キーを全て押すと15になる

これで、キー入力の読み取りについてハッキリと理解し、すっきりしました。

バージョンアップもあり機能追加や変更があるので、時々はマニュアルを一通り読むようにしないといけませんね。

コメント

タイトルとURLをコピーしました