◆メインループ部分
コピペはインデントされないけどそのまま。
読みにくいので中身を省いて作業タブコメントだけ残している部分あり
| ;************************************************************************************************* ;* ステージアクションメイン * ;************************************************************************************************* // ステージ移動リセット // *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 ;------------------------------------------▲キーチェック▲ ;==========================================================△メインループ△ |