花火

花火の製作リクエストをいただきましたので、作ってみました。

 

頭を悩ませたのは丸く広がる部分をどうするか?

IchigoJam には SIN・COS がなく、計算では困難。

そこで配列に中心からの差分データを持ち、

そのデータを計算して広がるところを実現しています。

でもそれで 1K バイトギリギリの容量になってしまい、

サブルーチン化するなど最適化を行って 700 バイトに、

更に処理の時間がかかっていたので、

LET や POKE を使用して高速化を行い、

表示方法を調整していたりしています。

 

それでも IchigoJam BASIC 1.0.0 以降でないと遅いです。
(とはいってもそれ以外は

 IchigoJam BASIC 0.9.9 RC しかないのですが……)

 


10 'ハナビ
20 CLV:CLS
30 LET [0],6,1,4,4
40 LET [4],9,5,10,3
50 LET [8],10,1,7,7
60 T=RND(11)+10
70 LC T,23:? "."
80 FOR Y=22 TO 11 STEP -1
90 LC T,23:?:WAIT 15
100 NEXT
110 FOR I=0 TO 10
120 FOR J=0 TO 10 STEP 2
130 LET A,[J]*I/10
140 LET B,[J+1]*I/10
150 LET X,A:LET Y,B
160 LET C,42:GOSUB 260
170 LET X,[J+50]:LET Y,[J+51]
180 LET C,32:GOSUB 260
190 LET [J+50],A:LET [J+51],B
200 NEXT:NEXT
210 FOR J=0 TO 10 STEP 2
220 LET X,[J+50]:LET Y,[J+51]
230 LET C,32:GOSUB 260
240 NEXT
250 WAIT RND(120):GOTO 50
260 LET D,X:LET E,Y:GOSUB 290
270 LET E,X:LET D,Y:GOSUB 290
280 RETURN
290 POKE #900+T+D+(10+E)*32,C
300 POKE #900+T+D+(10-E)*32,C
310 POKE #900+T-D+(10+E)*32,C
320 POKE #900+T-D+(10-E)*32,C
330 RETURN

IchigoJam web でプログラムを実行します。

このQRコードはアクセス解析のためにCookieを使用しています。

アクセス解析は匿名で収集されており、個人を特定するものではありません。

この機能はCookieを無効にすることで収集を拒否することができますので、
お使いのデバイスのブラウザの設定をご確認ください。

MixJuice ダウンロード ?"MJ GET kidspod.club/mj/595

MicJack ダウンロード ?"MJ GKP 595


 

IchigoJam R など、RISC-V プロセッサの IchigoJam では次を加えて下さい。

185 WAIT 1
235 WAIT 8

 

IchigoJam BASIC RPi では次を加えて下さい。

185 WAIT 2
235 WAIT 15

他のプログラム