PICO-8で真偽を表示する方法

ゲームなどで任意の内容をリアルタイムで知りたい為に使われる、printデバッグ。

私もキャラクタのパラメータなどを表示させて、チェックし不具合を直したりしています。

今回のスネークゲーム(PICO-8で作成)も、自分の不死フラグ(真なら無敵、偽なら当たり判定あり)を実装したため、ちゃんと機能しているのか画面上に表示しようと思い、print文を記述して実行。

print(“flag is “..simmo_flag)

結果は、エラー!!

「runtime error attempt to concatenate global ‘simmo_flag’ (a boolean value)」
「ランタイムエラーグローバル’simmo_flag ’を連結しようとしました(ブール値)」

if 文で print 文を2つ書く方法も考えたのですが、
「なにか 良い方法があるのでは?」
と思い、グーグル検索。

すると、本家PICO-8のBBSにありました!!

正解は、
print(“flag is “..(simmo_flag and “true” or “false”))
でした。

コンソールモードで試してみました。

フラグの真偽をprint文で表示させる
フラグの真偽をprint文で表示させる

「A and B or C」とした時、


まず「A and B」で、Aの内容がfalseかnilの場合Aを返し、それ以外はBを返します。


そして「B or C」で、Bの内容がfalseかnilの場合Cを返し、それ以外はBを返します。


なので、
(true and ‘1’ or ‘0’) -> ((true and ‘1’) or ‘0’) -> ‘1’ or ‘0’ ->’1′
(false and ‘1’ or ‘0’) -> ((false and ‘1’) or ‘0’) -> false or ‘0’ ->’0′
となります。

こちらもコンソールで試しました。

true false の表示
true false の表示

これで、printデバッグのboolean値の扱いが出来るようになりました!!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください