IchigoJam Rのスピードを活かして、おなじみの100mダッシュゲームを3D視点にしてみました。スペースキーを連打してダッシュします。
ちなみにIchigoJam Sだと、3D表示が遅くて人間の連打に着いていけず、タイムが出ません。
動画はこちら。
【IchigoJam】3D 100mダッシュ
プログラム
ノーマル版
1kバイト目一杯で、タイトルやラベルが入りませんでした。
1 CLS:LC 9,0:?"***100m Dash***" 2 ?:?"TIME ";T/60;".";T%60/6; 3 IF T<S OR S=0 S=T 4 LC 12,2:?"Today Record ";S/60;".";S%60/6 5 DRAW 0,11,63,11 6 DRAW 31,12,0,43 7 DRAW 32,12,63,43 8 LC 10,12:?"------------" 9 LC 11,11:?"10" 10 LC 0,22:?"==============================="; 11 LC 1,21:?"0" 12 LC 15,22:?CHR$(250); 13 WAIT 60 14 LC 13,20:?"READY?" 15 IF BTN(32) CONT 16 IF !BTN(32) CONT 17 LC 5,2:?"0.0 " 18 LC 13,20:?" " 19 LC 13,20 20 FOR I=3 TO 1 STEP -1 21 ?I;" ";:BEEP 22 WAIT 60 23 NEXT 24 LC 13,20:?" " 25 BEEP 10,30 26 L=16:CLT 27 IF !BTN(32) CONT 28 IF BTN(32) CONT 29 FOR R=16 TO 2 STEP -1 30 A=#9B1+R*31:C=PEEK(A) 31 COPY A+31,A,2 32 POKE A+33,C*(C=61 OR C=45) 33 COPY A+34,A+33,R*2-3 34 NEXT 35 LC 15,22:?CHR$(250); 36 L=L+1:C=0 37 IF L%100=0 C=61 ELSE IF L%10=0 && L<100 C=45 38 LC 15,7:?CHR$(C,C) 39 LC 15,7 40 IF L%100=1 ?"G" ELSE IF L%10=1 && L<100 ?L-1 41 T=TICK() 42 LC 5,2:?T/60;".";T%60/6 43 IF L<115 GOTO 27 44 LC 13,20:?"GOAL!" 45 BEEP 10,30 46 WAIT 120 47 RUN
展示用
- 入力を外付けボタンに変更
- トップレコードをプログラムの末尾に書きこんでSAVEします。電源を切っても消えません。
- 最初に「POKE #FFE,3」で、仮のトップレコード(12.8秒)を入れて「SAVE 0」しておいてください。
1 @ARUN:CLS:LC9,0:?"***100m Dash***" 2 ?:?"TIME ";T/60;".";T%60/6; 3 S=PEEK(#FFE)*256+PEEK(#FFF) 4 LC12,2:?"Top Record ";S/60;".";S%60/6 5 DRAW0,11,63,11 6 DRAW31,12,0,43 7 DRAW32,12,63,43 8 LC10,12:?"------------" 9 LC11,11:?"10" 10 LC0,22:?"==============================="; 11 LC1,21:?"0" 12 LC15,22:?CHR$(250); 13 WAIT60 14 LC13,20:?"READY?" 15 IFBTN()CONT 16 IF!BTN()CONT 17 LC5,2:?"0.0 " 18 LC13,20:?" " 19 LC13,20 20 FORI=3TO1STEP-1 21 ?I;" ";:BEEP 22 WAIT60 23 NEXT 24 LC13,20:?" " 25 BEEP10,30 26 L=16:CLT 27 IF!BTN()CONT 28 IFBTN()CONT 29 FORR=16TO2STEP-1 30 A=#9B1+R*31:C=PEEK(A) 31 COPYA+31,A,2 32 POKEA+33,C*(C=61 OR C=45) 33 COPYA+34,A+33,R*2-3 34 NEXT 35 LC15,22:?CHR$(250); 36 L=L+1:C=0 37 IFL%100=0C=61ELSEIFL%10=0&&L<100C=45 38 LC15,7:?CHR$(C,C) 39 LC15,7 40 IFL%100=1?"G"ELSEIFL%10=1&&L<100?L-1 41 T=TICK() 42 LC5,2:?T/60;".";T%60/6 43 IFL<115GOTO27 44 LC13,20:?"GOAL!" 45 BEEP10,30 46 WAIT120 47 IFT<SS=T:POKE#FFE,S/256:POKE#FFF,S%256:SAVE 48 RUN