◆メインループ部分

コピペはインデントされないけどそのまま。
読みにくいので中身を省いて作業タブコメントだけ残している部分あり

;*************************************************************************************************
;* ステージアクションメイン *
;*************************************************************************************************
// ステージ移動リセット //
*kp02
title "MAP "+st
;DSHPLAY 1,1,開始(ms),ループ開始(ms),ループ戻り(ms)
mx=nmx:my=nmy
;gosub *ショートデモ(未定)
;=========================================================▽メインループ▽
*main
gosub *winact
;------------------------------------------▼描画▼
redraw 0
color 255,148,40:boxf
#include "map.hsp"
gosub *motion
/* プレイヤー */
gmode 2,20,30:pos mx,my:gcopy 4,kmot,car*60+left*30
redraw 1
await 20
;------------------------------------------▲描画▲
// ステータスセット //
;------------------------------------------▼キーチェック▼
// キーボorパッド //
if j=0 {
DIGETKEYSTATE key,0
}
if j=1 {
DIGETJOYSTATE joy,0
key=0
if joy&1 : key+=1
if joy&2 : key+=2
if joy&4 : key+=4
if joy&8 : key+=8
if joy&64 : key+=1024
if joy&128 : key+=2048
if joy&2048 {
if key&4 : key-=4
if key&8 : key-=8
key+=12
}
}
DIGETKEYSTATE esc,3
if esc&8 : end
// 動作 //
if 20<jmp : goto *jamp

if key&4 {;←
if 0<xac : xac-=4 : else : mx=limit(mx-1,x1,x2)
move=1:walk+:left=1
}
if key&8 {;→
if xac<0 : xac+=4 : else : mx=limit(mx+1,x1,x2)
move=1:walk+:left=0
}
if (itemX=1)&(my=y2) {
if key&2048 {
if key&4 {;←X
xac=limit(xac-cac1,-100,100)
}
if key&8 {;→X
xac=limit(xac+cac1,-100,100)
}
}
}
mx=limit(mx+xac/40,x1,x2);加速分動く
if my=y2 {
if xac<0 : xac+=cac2;加速がゼロに向かう
if 0<xac : xac-=cac2
}
else {
if xac<0 : xac+;加速がゼロに向かう
if 0<xac : xac-
}

if (my!y2)|(0<jmp) : goto *jamp

if key&1024 : yac=100 : jmp=28 : goto *jamp

goto *main
*jamp
if 20<jmp : jmp- : goto *main
if jmp=20 : DSHPLAY 4,0,0
yac=limit(yac-5,-60,100);加速が重力(-60)に向かう
my=limit(my-yac/20,y1,y2)
if (my=y2)&(jmp=0) : DSHPLAY 3,0,0
jmp-
goto *main
;------------------------------------------▲キーチェック▲
;==========================================================△メインループ△