=== hanabi3.def === PC98 only JUNさんの花火マクロをちょっとだけ改変しました。 打ち上げの軌跡を変え、速度を調整してみました。 打ち上げの軌跡を変え、速度を遅くしてみました。 v0.2 打ち上げの高さを上げ、重力で遅くなる感じを出してみました。 v0.3 画面の端に寄りすぎないように修正しました。 小さすぎる花火は一定の大きさにしてウエイト入れました。 [ESC]で終了します。 konno 2025-08-26 単なる、お遊びマクロです。実行しますと、打上げ花火が始ります。 グラフィックの背景が使われていない、Vzでお試し下さい。 ;============ 花火.def =============== 98 only * m 96-08-01 JUN(QWB01063) 80 ^\ "hanabi" ?. #ifn 98 &m("PC98 only") . #endif ep[-, x-,y-, &i("$(b4,16,b6,01,b2,20,cd,18,c3)") ax$4000,&i($18) ; グラフィック表示可にする &00 ;★ h120, :C ax=$2c00,&i($21) rn=cx+dx, ; ランダムシード &k (r==$1b)?{>Z}?{ &r x=(r%(640)),y=(r%(400)),i=(y/5),;花火の位置 (i<20)?i20, ;★★ 花火の大きさ 最大79? (x<640-h)?{ a=x,} (x<80)?{x=80,a=x,} ;★★ x pos? (y>h&&y<150)?{b=y,}?b80, j400,k430, :D l=(k-130)/23, ;★★ 上に行くほど遅くなる &m(" %2d %d %d %d %d",l,y,i,x,a) ;debug ; (j>200)?{j--,&29 >D } ;打上げ軌跡 (j>120)?{j--,&29 } ;打上げ軌跡 :E (k<300&&k%l==0&&l>1)? &w(1) ;★★ lの数字で速度調整 遅 0〜12 速 ; (k%l==0)? &w(1) ;★★ l=0で最遅 (k>400)?{k--,>D } ; (k>200)?{k--,&39 >D } (k>120)?{ k=k+2,&39 k--,&39 k--,&39 ; (k%3==0)? &w(1) ; ★★ k%の数字で速度調整 遅 1〜9 速 (k%l==0)? &w(1) ; ★★ k%の数字で速度調整 遅 1〜9 速 k=k+2,&39 k--,&39 k--,&39 k--,&39 >D } h-, :A &b(1) ;だんだんうるさくなってくる (^^ (hA } ;輪を描くローカルへ h0, ; h+=10 輪の間隔 :B (hB } ;輪を消すローカルへ h120, >C } :Z &d ep], 00: ; 念のため、グラフィック画面クリア。 &i(3+$)."$ $(FC,B9,00,B0,E8,1F,00,B9,00,B8,E8,19,00,B9,00,A8)$ $(E8,13,00,33,C0,8E,C0,26,F6,06,4C,05,04,74,06,B9)$ $(00,E0,E8,01,00,C3,8E,C1,B9,00,40,33,C0,33,FF,F3)$ $(AB,C3)" 05: ; ★ 円 を描く ★ x,y 中心座標。 ee=h, dd-,hh=h, :A (ee>=dd)?{ x=a+ee,y=b+dd,&10 x=a-ee,y=b-dd,&10 x=a-ee,y=b+dd,&10 x=a+ee,y=b-dd,&10 x=a+dd,y=b+ee,&10 x=a-dd,y=b-ee,&10 x=a-dd,y=b+ee,&10 x=a+dd,y=b-ee,&10 hh-=2*dd+1, (hh<0)?{hh+=(2*(ee-1)),ee--,}dd++, >A } 06: ; ★ 円 ★ 消す。 (i<30)? &w(15) ;★★ ee=h, dd-,hh=h, :A (ee>=dd)?{ x=a+ee,y=b+dd,&16 x=a-ee,y=b-dd,&16 x=a-ee,y=b+dd,&16 x=a+ee,y=b-dd,&16 x=a+dd,y=b+ee,&16 x=a-dd,y=b-ee,&16 x=a-dd,y=b+ee,&16 x=a+dd,y=b-ee,&16 hh-=2*dd+1, (hh<0)?{hh+=(2*(ee-1)),ee--,}dd++, (i<30)? &w(1) ;★★ >A } 10: (a%5)>?{&11 &12 &13 &14 &15 } 11: (ee%8)>?{ &24 &21 &26 &24 &24 &21 &22 &21 }. ;花火の色 12: (dd%8)>?{ &24 &21 &26 &24 &24 &26 &24 &26 }. ;花火の色 13: (ee%8)>?{ &24 &24 &26 &24 &26 &24 &24 &24 }. ;花火の色 14: (ee%8)>?{ &24 &21 &24 &22 &22 &24 &22 &24 }. ;花火の色 15: (y%8)>? { &24 &24 &26 &26 &26 &24 &26 &24 }. ;花火の色 16: &27 &20 ;輪を消す。 ;<<<<<<<<<<<<<<<<< 20番台は色の設定。>>>>>>>>>>>>>>>>>> 21: ;BLUE di=y*80+x/8, ;VRAM アドレス dx-, dx=128>>(x&7), &i(3+$)."$ $(b8,00,a8,8e,d8,08,15,c3)" 22: ;GREEN di=y*80+x/8, dx-, dx=128>>(x&7), &i(3+$)."$ $(b8,00,b8,8e,d8,08,15,c3)" 23: ;SKY_BLUE di=y*80+x/8, dx-, dx=128>>(x&7), &i(3+$)."$ $(b8,00,b8,8e,d8,08,15)$ $(b8,00,a8,8e,d8,08,15,c3)" 24: ;RED di=y*80+x/8, dx-, dx=128>>(x&7), &i(3+$)."$ $(b8,00,b0,8e,d8,08,15,c3)" 25: ;PURPLE di=y*80+x/8, dx-, dx=128>>(x&7), &i(3+$)."$ $(b8,00,b0,8e,d8,08,15)$ $(b8,00,a8,8e,d8,08,15,c3)" 26: ;yellow di=y*80+x/8, dx-, dx=128>>(x&7), &i(3+$)."$ $(b8,00,b0,8e,d8,08,15)$ $(b8,00,b8,8e,d8,08,15,c3)" 27: ;white di=y*80+x/8, dx-, dx=128>>(x&7), &i(3+$)."$ $(b8,00,b0,8e,d8,08,15)$ $(b8,00,b8,8e,d8,08,15)$ $(b8,00,a8,8e,d8,08,15,c3)" 20: ;花火の輪を、 di=y*80+x/8, ;一度&27で白にしたのを dx-, ;XOR で消す。 dx=128>>(x&7), &i(3+$)."$ $(b8,00,b0,8e,d8,31,15)$ $(b8,00,b8,8e,d8,31,15)$ $(b8,00,a8,8e,d8,31,15,c3)" ;AND 88 OR 08 XOR 31 29: di=j*80+a/8, ;打上げ軌跡XOR dx-, dx=128>>(x&7), &i(3+$). "$(b8,00,b0,8e,d8,31,15)$ $(b8,00,b8,8e,d8,31,15,c3)" 39: di=k*80+a/8, ;打上げ軌跡XOR dx-, dx=128>>(x&7), ; dx=128>>(x&15), &i(3+$). "$(b8,00,b0,8e,d8,31,15)$ $(b8,00,b8,8e,d8,31,15,c3)" 30: ;white &i(3+$)."$ $(b8,00,b0,8e,d8,08,15)$ $(b8,00,b8,8e,d8,08,15)$ $(b8,00,a8,8e,d8,08,15,c3)" 31: ;クリア用XOR &i(3+$)."$ $(b8,00,b0,8e,d8,31,15)$ $(b8,00,b8,8e,d8,31,15)$ $(b8,00,a8,8e,d8,31,15,c3)" * ====================================