(published: Nov. 27, 2000)
point
関数を使った画面処理を応用したゲームです。
今回はパラメータを変数にしてまとめることで、
改造をしやすくしています。
爆弾処理員(白い四角)を動かして 爆弾(青、赤、紫、緑、水色の四角)を 処理して下さい。 爆弾は時間が経つにつれて 青、赤、紫、緑、水色と変化してから爆発し、 黄色い爆風を発生します。 爆風に触れるとゲームオーバーで、 スコアが表示されます。
カーソルキー:移動
爆弾に触れることでその爆弾を処理できます。
爆弾の色によって異なった点数が入ります。
1 randomize 10 cls 3 15 x%=1:y%=1:s%=0:f%=0:xl%=0:xr%=20:sp%=15:hw%=30:vw%=30:wt%=200:xi%=60 20 line(0,0)-((hw%+1)*sp%+sp%-1,(vw%+1)*sp%+sp%-1),4,bf 25 line(1*sp%,1*sp%)-(hw%*sp%+sp%-1,vw%*sp%+sp%-1),0,bf 78 locate xi%,2:print "xam" 80 locate xi%,3:print "[cursor]: move" 82 locate xi%,4:print "" 84 locate xi%,5:print "by Nisino Tatami" 86 locate xi%,7:print "push [spc]" 90 i$=inkey$:if i$<>" " then 90 92 locate xi%,7:print " " 100 x0%=0:y0%=0 110 if keystate(28)<0 and x%<hw% then x0%=1 115 if keystate(29)<0 and x%>1 then x0%=-1 120 if keystate(31)<0 and y%<vw% then y0%=1 125 if keystate(30)<0 and y%>1 then y0%=-1 127 p%=point((x%+x0%)*sp%,(y%+y0%)*sp%) 128 if p%<>7 then s%=s%+p% 129 if p%=6 then f%=1:s%=s%-p% 130 line((x%+x0%)*sp%,(y%+y0%)*sp%)-((x%+x0%)*sp%+sp%-1,(y%+y0%)*sp%+sp%-1),7,bf 135 if x0%<>0 or y0%<>0 then line(x%*sp%,y%*sp%)-(x%*sp%+sp%-1,y%*sp%+sp%-1),0,bf 140 x%=x%+x0%:y%=y%+y0% 201 h%=int(rnd(1)*hw%)+1:v%=int(rnd(1)*vw%)+1:h1%=h%:v1%=v% 201 c%=point(h%*sp%,v%*sp%)+1 202 if c%=7 then c%=0 203 if c%=6 then h%=h%-1:v%=v%-1:h1%=h1%+1:v1%=v1%+1 210 line(h%*sp%,v%*sp%)-(h1%*sp%+sp%-1,v1%*sp%+sp%-1),c%,bf 220 for l%=1 to wt%:next l% 360 if f%=0 then 100 361 for l%=1 to 3 362 x1%=x%-l%:if x1%< 0 then x1%=0 363 x2%=x%+l%:if x2%>hw%+1 then x2%=hw%+1 364 y1%=y%-l%:if y1%< 0 then y1%=0 365 y2%=y%+l%:if y2%>vw%+1 then y2%=vw%+1 366 line(x1%*sp%,y1%*sp%)-(x2%*sp%+sp%-1,y2%*sp%+sp%-1),2,bf 367 next l% 370 locate xi%,7:print "score ";s%;" " 380 locate xi%,9:print "retr[y]/e[n]d" 390 i$=inkey$ 400 if i$="y" then 10 410 if i$<>"n" then 390 420 end
([D]iscoversoft) (H-man in [A]CTIVE BASICトップ) (総合索引[t])