6.背景を表示する

動く背景を表示します。背景といっても、絵を描くのが面倒なので、
今回は星っぽい点をプログラムで描いて宇宙を表現します。
ただ点滅している点が動いてるだけです。
絵が描ける人は自分で描いたほうがよいでしょう。

↓スクリーンショット(実際は点滅)
スクショ

screen 0,400,400

//星の位置
dim st_x,20
dim st_y,20
dim st_col,20 //星の色
dim st_change,20 //星の色の変化を制御
repeat 20
st_y(cnt) = 500 //画面外を初期位置にする
loop

*main
gosub *background
redraw 1
wait 1
redraw 0
goto *main

//背景表示ルーチン
*background
color 12,12,24
boxf 0,0,400,400 //背景塗りつぶし
time++
//新たな星を生成
if time = 50 {
	repeat 20
	if st_y(cnt) > 400 :i = cnt :break
	loop
	st_x(i) = rnd(401)
	st_y(i) = 0
	st_col(i) = rnd(192)+64
	st_change(i)=3
	time = rnd(25)
}
repeat 20
st_y(cnt) ++
if st_col(cnt) >= 252 : st_change(cnt) = -4
if st_col(cnt) <= 128 : st_change(cnt) = 4
st_col(cnt)+=st_change(cnt)
color st_col(cnt),st_col(cnt),255
boxf st_x(cnt),st_y(cnt),st_x(cnt)+1,st_y(cnt)+1
loop
return

25〜50ループ毎に新たな星を発生させます。
その際、すでに画面から消えてしまった星の変数を再利用します。
星の色は青→白→青→白と変化します。