なにがわからないのかはっきりしませんね。
だからこんな(↓)ゲームになっちゃいました。
screen 0,640,480
fspeed=10
HIGHSCORE=0
ks=480
dim k,480
dim ksl,480
dim r,480
dim g,480
dim b,480
ked=140
red=0
ged=0
bed=0
ki=0;
SCORE=0
repeat 480
gosub*makewall
loop
mx=k(ki\480)+ks/2
my=470.0
*main
redraw 1
redraw 0
color 255,255,255
boxf
repeat fspeed
gosub*makewall
loop
gosub*drawwall
gosub*drawme
gosub*a
gosub*opt
await 50
goto*main
*makewall
k(ki)=ked+rnd(11)-5
if k(ki)+ks>480 { k(ki)=480-ks }
if 0>k(ki) { k(ki)=0 }
ked=k(ki)
ksl(ki)=ks
r(ki)=red+rnd(11)-5
if r(ki)>255 { r(ki)=255 }
if 0>r(ki) { r(ki)=0 }
red=r(ki)
g(ki)=ged+rnd(11)-5
if g(ki)>255 { g(ki)=255 }
if 0>g(ki) { g(ki)=0 }
ged=g(ki)
b(ki)=bed+rnd(11)-5
if b(ki)>255 { b(ki)=255 }
if 0>b(ki) { b(ki)=0 }
bed=b(ki)
ki++
if ki>480:ki=0
if SCORE<200{
ks=500
}else{
ks=480-(SCORE/50)
}
return
*drawwall
repeat 480
n=(ki+cnt)\480
color r(n),g(n),b(n)
line -1,479-cnt,k(n),479-cnt
color 255-r(n),255-g(n),255-b(n)
line k(n),479-cnt,k(n)+ksl(n),479-cnt
color r(n),g(n),b(n)
line k(n)+ksl(n),479-cnt,480,479-cnt
loop
return
*drawme
stick ky,0xFFFF
if (ky&1)=1 { mx-=5 }
if (ky&2)=2 { my-=5 }
if (ky&4)=4 { mx+=5 }
if (ky&8)=8 { my+=5 }
if mx>469{mx=469}
if my>469{my=469}
if mx<10 {mx=10}
if my<10 {my=10}
color 0,255,0
boxf mx-4,my-4,mx+4,my+4
return
*a
repeat 9:p=cnt-4
n=k((ki+480-my+p)\480)
ns=ksl((ki+480-my+p)\480)
if n>mx-4 or mx+4>n+ns{
color 255,0,0
boxf
mx=n+ns/2
SCORE-=500
}else{
SCORE+=1
}
loop
return
*opt
color 200,200,200
boxf 480,0,640,480
color 0,0,0
pos 500,20
mes "SCORE:"+SCORE
mes "一\n生\n終\nわ\nら\nな\nい\nゲ\n|\nム"
mes "\n HIGHSCORE\n+-----------+\n"+strf("| %07d |",HIGHSCORE)+"\n+-----------+"
if HIGHSCORE<SCORE{
HIGHSCORE=SCORE
}
return