自キャラ動作アルゴリズム
移動方向をmmx,mmyに入れて返します

1140 ctrl:
1150 bg_border 1-dropf*(mmx<>0):h1=sp_bghit(0,0,3):bg_border 2   下の面の状態取得(bg_borderで読み取り距離調整)
1160 h2=bg_get(mx+8,my+8,0)  内部中心のBG取得
1170 if h2=1 then bg_put mx+8,my+8,0:ft=ft-1:if ft=0 then ui_msg"fine.":'item
  中心はアイテム(h2=1)ならBGを空に書きかえ 全部回収ならfineメッセージ
1180 if strig(0)=2 and lc<3 then lc+=1:nn=lc:nx=mx:ny=my:na="1:gosub" cmake:'shot  トリガ0で自弾作成
  lcを+1してnnに代入、座標nx,nyとnaにキャラのアルゴリズム1(自弾)入れてcmake:を呼ぶ
1190 stx=stick(0)  x移動方向取得
1200 if stx<>0 then md=stx:mpt=8-(mmy=0)*((mx+bg_map(0)) mod 8)\2:rv=(stx+1)\2   歩きアニメ
1210 if h1=0 and h2<2 then  下や中央が空なら
1220 mmy=mmy+0.3:dropf=1:'drop  落下運動
1230 if mmy<0 then if sp_bghit(0,0,-3)=2 then mmy=0   上で壁にぶつかり上昇止まる
1240 else
1250 if dropf=1 and h2<>2 then my=my-(my+bg_map(1)) mod 16   着地でy補正
1260 dropf=0:mmx=stx:'on ground  接地状態で左右移動
1270 mmy=stick(1):'up down
1280 if mmy<>0 then
1290 if sp_bghit(0,0,sgn(mmy)*3)<>2 and ((sp_bghit(0,0,2+(mmy+1)\2)=1) or h2=2) then
  sp_bghit(0,0,sgn(mmy)*3)<>2 yの移動先BGに壁が一つもなくて
  足元(sp_bghit(0,0,2+(mmy+1)\2)=1 または 内部h2=2 が境界BGチップ(梯子)になっている時は梯子の上下移動可
1300 mmx=0:c1=(mx+bg_map(0)) mod 16:mx=mx+(c1<8)*c1-(c1>7)*(16-c1):mpt=12+((my+bg_map(1)) mod 8)\2:rv=0
  梯子でx座標の補正 梯子移動アニメーション
1310 else
1320 mmy=0   梯子移動状態でない(y移動しない)
1330 endif
1340 endif
1350 if strig(1)=2 and h2<2 then mmy=-4:'jump  トリガ1押されたら上移動加算(ジャンプ)
1360 endif
1370 if sp_bghit(0,mmx,0)=2 then mmx=0   横が壁なら横移動ストップ
1380 return
1390 '