#東方弾幕風 #Title[正葉曲線] #Text[] #Image[] #BackGround[] #ScriptVersion[2] script_enemy_main { let imgExRumia=GetCurrentScriptDirectory~"img\ExRumia.png"; @Initialize() { SetLife(2000);//敵のライフを2000に設定 SetGraphicRect(64,1,127,64);//描画元の矩形を(64,1)-(127,64)に設定 LoadGraphic(imgExRumia);//画像「img\ExRumia.png」を読みこむ TMain; } @MainLoop() { SetCollisionA(GetX(),GetY(),32);//敵の座標に当たり判定を登録 SetCollisionB(GetX(),GetY(),24);//敵の座標に当たり判定(体当たり用)を登録 yield;//毎フレームタスク復帰 } @DrawLoop() { SetTexture(imgExRumia); DrawGraphic(GetX(),GetY());//敵の座標にExルーミアを描画; } @Finalize() { DeleteGraphic(imgExRumia); } //------------------------------------------------------- //メインタスク task TMain { yield; SetMovePosition02(GetCenterX, GetCenterY, 1); wait(5); Tleaf(90 ,7); } //正葉曲線タスク task Tleaf(a ,b) { let ang = 0; loop(180) { let r = a*sin(b *ang);//正葉曲線の極方程式 //極座標をXY座標に分解 let x = r *sin(ang); let y = r *cos(ang); CreateShot01(GetX() +x ,GetY() +y ,0 ,atan2(GetY() -(GetY() +y) ,GetX() -(GetX() +x)) ,BLUE12 ,0); wait(1); ang ++; }//loop }//task // w フレームだけ待つ function wait(w) { loop(w) { yield; } } }