うーんあまり1行に詰め込むのはOSPやQSPでも書かない限りややこしくなるからやめたほうがいいと思う
そして、D$って存在意義無いような気がするし、打ち間違いがあったら困るから自分なら
@1P
B=button()
while B and 13
wend
C=-1:D=-1'CはC$の代わり、DはD$の代わり
if B and 1 then C=0 elseif B and 4 then C=1 elseif B and 8 then C=2
on C goto @2P,@2P,@2P
goto @1P
~以下略
とかするなぁ
spset 0,tmpID 'tmpIDはspdefの番号
sphome 0,0,0 '左上
l=0 'BGのレイヤ
while 1
b=button()
spofs 0 out sx,sy
if b and #left then dx=-1
if b and #right then dx=1
if bgget(L,dx+8,dy+17,1) then break '落とし穴に落ちた
spofs 0,sx+dx,sy
vsync
wend