#東方弾幕風 #Title[マイクロスレッドサンプル] #Text[「固定弾のマイクロスレッド」と 「自機狙いのマイクロスレッド」を 同時に動かすサンプル] #ScriptVersion[2] #Player[FREE] script_enemy_main { let imgboss = "script\img\ExRumia.png"; @Initialize { //ボスの初期位置設定 SetX(GetCenterX); SetY(GetClipMinY+120); //ボスの体力設定 SetLife(3000); //残り時間設定 SetTimer(60); //ボスグラフィック読み込み LoadGraphic(imgboss); //メインスレッドを起動 TMain; } @MainLoop { SetCollisionA(GetX,GetY,48); SetCollisionB(GetX,GetY,32); yield; //←@MainLoop内に必ず1個だけ記述 } @DrawLoop { //ボスグラフィック描画 SetTexture(imgboss); SetGraphicRect(0,0,63,63); DrawGraphic(GetX,GetY); } @Finalize { DeleteGraphic(imgboss); } //メインスレッド task TMain { //最初に120フレーム待機 loop(120){yield;} //開始から120フレーム後に固定弾発射開始 TKotei; //180フレーム待機 loop(180){yield;} //固定弾の発射開始から180フレーム後(スクリプト開始から300フレーム後)に自機狙い弾発射開始 TJikinerai; } //固定弾のマイクロスレッド //60フレームごとに全方位弾(青弾)を発射 task TKotei{ loop{ //全方位弾 ascent(i in 0..30){ CreateShot01(GetX,GetY,1,360/30*i,BLUE01,0); } loop(60){yield;} //60フレーム待機 } } //自機狙いのマイクロスレッド //12フレームごとに自機狙い弾(赤弾)を発射 task TJikinerai{ loop{ CreateShot01(GetX,GetY,3,GetAngleToPlayer,RED01,0); loop(12){yield;} //12フレーム待機 } } }