SHIROのIchigoJam日記

マイコン「IchigoJam」(イチゴジャム)の電子工作とプログラミングをメインに

クマのかわくだり

IchigoJam Advent Calendar 2017へのエントリー作品です。

先日工作した、くまモン形IchigoJam「Kumajam」
何とかこれを活かしたものを作れないか?と考えて、有機EL画面を載せてみました。

本家IchigoJam Tと同じく、Kumajamにも5ピンのCN5ソケットが付いています。
ただしピン配置が上下逆になっていて、上がGND、下が5Vになっています。
国野さんが紹介している有機ELモジュールを装着すると、外向きに張り出します。

この状態で、国野さんのサイトにある縦表示ライブラリを使うと、表示が上下逆になります。
Kumajamを上下逆に持って、2つのボタンを左右の親指で操作すると、ちょうど良いです。

この環境に対応した、おなじみの「かわくだりゲーム」を作ってみました。
有機EL表示に時間がかかるため、本家のかわくだりよりスピードは遅めです。

  • 左右のボタンで自分のキャラを動かして、下から来る岩を避けてください。
  • 岩に当たるとゲームオーバーになり、下ったタイム(秒数)を表示します。左ボタン(SW2)を押すとリプレイします。
10 '*Kuma no Kawakudari
20 CLS:GSB 800:X=3
30 IF BTN() CONT ELSE CLT
40 LC X,3:?"O"
50 SCROLL 0:LC RND(10),15:?"*":GSB 900
60 L=BTN():R=!IN(1)
70 X=X-L*(0<X)+R*(X<7)
80 IF !SCR(X,3) GOTO 40
90 BEEP 30,30:T=TICK()
100 LC 0,15:?T/60;".";T%60/6;:GSB 900
110 WAIT 60
120 IF !BTN() CONT
130 RUN
800 'OLED INIT
810 poke#780,#00,#40,#21,#00,#7F,#22,#00,#07,#AE,#D5,#80,#8D,#14,#20,#00,#DA,#12,#81,#CF,#D9,#F1,#DB,#40,#A4,#A6,#AF
820 forP=#788to#799:i=i2cw(60,#780,1,P,1)
830 next
840 poke #79a,#70,#b5,#40,#18,#07,#23,#1b,#02
850 poke #7a2,#c9,#18,#10,#24,#03,#78,#db,#00
860 poke #7aa,#d3,#18,#1d,#68,#0d,#60,#5d,#68
870 poke #7b2,#4d,#60,#20,#30,#08,#31,#01,#3c
880 poke #7ba,#f4,#d1,#70,#bd
890 'OLED OUT
900 forP=0to7:i=usr(#79A,#907-P):i=i2cw(60,#781,1,#700,128):next:rtn

※60行目を

60 L=BTN(28):R=BTN(29)
に変更すれば、通常のIchigoJam Tボード+有機ELの環境でも遊べます。キーボードの←→キーで操作できます。画面表示が小さいのを我慢すれば、通常のモニタ環境でも遊べます。