#東方弾幕風 #Title[オブジェクト弾幕NWAY] #Text[オブジェクト弾幕NWAY] #Image[] #BackGround[] #BGM[] #PlayLevel[Normal] #Player[REIMU,MARISA] #ScriptVersion[2] script_enemy_main { @Initialize { //敵出現時に一度だけ実行される部分 SetX(GetCenterX); SetY(GetClipMinY+120); SetLife(2000); LoadGraphic("script\img\ExRumia.png"); SetTexture("script\img\ExRumia.png"); SetGraphicRect(0, 0, 63, 63); Main; } @MainLoop { //敵のライフが0になるまで、この部分が1フレームに1回実行 SetCollisionA(GetX, GetY, 24); SetCollisionB(GetX, GetY, 24); yield; } @DrawLoop { //描画ループ。1フレームに1回実行 DrawGraphic(GetX, GetY); } @Finalize { //敵が消滅した瞬間に一度だけ実行される部分 DeleteGraphic("script\img\ExRumia.png"); } @BackGround { //スペルカード時の背景部分 //無くてもよい } task Main{ let obj=[]; ascent(i in 0..5){ obj=obj~[NULL]; } loop(100){yield;} loop{ loop(10){ let angle=-120; while(angle<=-60){ ascent(i in 0..5){ // obj[i]=Obj_Create(OBJ_SHOT); // Obj_SetPosition(obj[i],GetX,GetY); // Obj_SetSpeed(obj[i],3); // Obj_SetAngle(obj[i],angle); // ObjShot_SetGraphic(obj[i],BLUE21); // ObjShot_SetDelay(obj[i],0); obj_shot(GetX,GetY,3,angle); angle+=15; } } loop(10){yield;} } loop(100){yield;} } yield; } task obj_shot(let set_x,let set_y,let speed,let angle){ let obj[i]=Obj_Create(OBJ_SHOT); ObjShot_SetGraphic(obj[i],BLUE21); Obj_SetPosition(obj[i],set_x,set_y); Obj_SetSpeed(obj[i],speed); Obj_SetAngle(obj[i],angle); let count=0; while(!Obj_BeDeleted(obj[i])){ if (count < 1) { if (Obj_GetX(obj[i])<=GetClipMinX) { Obj_SetAngle(obj,180-Obj_GetAngle(obj[i]));count++; } if (Obj_GetX(obj[i])>=GetClipMaxX) { Obj_SetAngle(obj[i],180-Obj_GetAngle(obj[i]));count++; } if (Obj_GetY(obj[i])<=GetClipMinY) { Obj_SetAngle(obj[i],-Obj_GetAngle(obj[i]));count++; } } } } }