// 原作に近いボスの移動ルーチンのインクルード専用スクリプトです // @Initializeの外で呼び出すことで各種関数が使えます。 //--------------------------------------------------------------------------------- // 移動 // dist :移動範囲 function BossMoveEX(let dist){ let dist2 = dist + rand(-dist/10, dist/10); //移動距離 = 移動距離に移動距離の10%の前後誤差 let theta = rand(0,360); let nX = cos(theta) * dist2; let nY = sin(theta) * dist2; BossMoveEXtoPlayer(absolute(nX), nY, GetClipMinX + 32, GetClipMinY + 32, GetClipMaxX - 32, GetClipMinY + 160); } // 連続移動(これを使うよりループの一部にBossMoveEX(**);を組み込んで同期した方がいいと思います) // dist :移動範囲 // w :待機時間 task BossMoveEXloop(let dist, let w){ yield; loop{ BossMoveEX(dist); loop(w){ yield; } } } // 移動関数 // nX,nY :移動範囲(正負) // left,top,right,bottom :可動領域 function BossMoveEXtoPlayer(let nX, let nY, let left, let top, let right, let bottom) { let x = 0; let y = 0; //減速動作に不満ならここの値を弄って下さい let MAXSPEED = 3; //最大速度 let SLOW = 15; //減速度 if(GetPlayerX < GetX) { x = GetX - nX; if(x < left) { x = GetX + nX; } }else{ x = GetX + nX; if(right < x) { x = GetX - nX; } } y = GetY + nY; if(y < top) { y = top; }else if(bottom < y) { y = bottom; } SetMovePosition03(x, y, SLOW, MAXSPEED); }