0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IchigoJamAdvent Calendar 2024

Day 12

【IchigoJam】正解・不正解を表示するやつ

Posted at

クレーンゲームの景品として、○や×で正解・不正解を示すやつと思われるものが入っているのを見かけた。
これの獲得を狙うより、IchigoJam で再現してみるほうが有意義だと判断した。
というわけで、作ってみた。

※IchigoJamはjig.jpの登録商標です。

操作方法

キー 動作
O (オー) ○を表示し、「ピンポン」という音を鳴らす
X (エックス) ×を表示し、「ブー」という音を鳴らす
その他 画面の表示を消す

プログラム

10 ' ピンポン / ブー
20 POKE#700,0,0,0,0,0,1,1,2,0,7,24,96,128,0,0,0,0,224,24,6,1,0,0,0,0,0,0,0,0,128,128,64,2,4,4,4,4,4,4,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,32,32,32,32,32,32,64,2,1,1,0,0,0,0,0,0,0,0,128,96,24,7,0
30 POKE#750,0,0,0,1,6,24,224,0,64,128,128,0,0,0,0,0,0,4,2,1,0,0,0,0,0,0,0,0,128,64,32,16,0,0,0,0,1,2,4,8,0,32,64,128,0,0,0,0,0,0,0,0,0,0,0,0,8,4,2,1,1,2,4,8,16,32,64,128,128,64,32,16,0,0,0,0,0,0,0,0
40 POKE#7A0,0,0,0,0,1,2,4,0,16,32,64,128,0,0,0,0,8,4,2,1,0,0,0,0,0,0,0,0,128,64,32,0:FORI=0TO23:POKE#800+I,#E0+I:NEXT:VIDEO7:CLS
50 K=INKEY()
60 IF K=ASC("O") OR K=ASC("o") COPY#900,#800,12:PLAY"O5E32.R64C16.":GOTO50
70 IF K=ASC("X") OR K=ASC("x") COPY#900,#80C,12:PLAY"O2B4":GOTO50
80 IF K CLS
90 GOTO50

解説

まず、VIDEO 7 の画面 (4×3文字) で表示することを前提として、○と×を描いた32×24ピクセルの画像を用意し、これをキャラクターパターンとして登録する。(20~40行目)

次に、COPY 命令で画面の内容を設定できるよう、文字のデータを用意しておく。(40行目)

指定のキーが押されたら、COPY 命令で○または×を表示する用の文字データを画面に書き込み、PLAY 命令で音を鳴らす。(60~70行目)

○と×の表示

○の表示

×の表示

まとめ

IchigoJam で、キー操作によって画面に○や×を表示するとともに、ピンポンやブーの音を鳴らすものを作ることができた。

応用例としては

  • キーのかわりに入力ポートを用いて操作する
  • 「別のキーを押す」ではなく「キーやボタンを離す」ことで画面をクリアする
  • PanCake を用いた音や表示の改善
  • WS2812B 系のLEDを用いた演出

などが考えられるだろう。これらは読者への宿題とする。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?