#東方弾幕風 #Title[] #Text[] #ScriptVersion[2] script_enemy_main { let name= ""; let imgBoss = "script\img\ExRumia.png"; let cx = GetCenterX; let cy = GetCenterY; let mix=GetClipMinX; let max=GetClipMaxX; let miy=GetClipMinY; let may=GetClipMaxY; let count = 0; @Initialize { CutIn(YOUMU, name, "", 0, 0, 0, 0); SetLife(2000); SetTimer(90); SetScore(4000000); SetX(GetCenterX); SetY(GetClipMinY); LoadGraphic(imgBoss); SetTexture(imgBoss); SetGraphicRect(0, 0, 63, 63); SetMovePosition03(cx ,cy-120 ,10 ,2); SetInvincibility(120); main; } task main{ wait(60); Concentration01(120); wait(120); Laser; } task Laser{ LaserObject(GetPlayerX+48,miy-12,90,0,16,RED03,60); LaserObject2(mix-12,GetPlayerY+48,0,0,16,RED03,60); } @MainLoop { SetCollisionA(GetX, GetY, 24);SetCollisionB(GetX, GetY, 24);//当たり判定 count++; yield; } @DrawLoop {DrawGraphic(GetX, GetY);} @Finalize {DeleteGraphic(imgBoss);} function wait(w) { loop(w) { yield; } } task LaserObject(let x, let y, let angle, let length, let width ,let grf, let delay) { let c=0; let len=0; let a=1; //弾タスク初期化 let obj = Obj_Create(OBJ_LASER);//弾オブジェクトを作成 let obj2 = Obj_Create(OBJ_LASER);//弾オブジェクトを作成 Obj_SetX(obj, x);//x座標設定 Obj_SetY(obj, y);//y座標設定; Obj_SetAngle(obj, angle);//移動角度設定 ObjShot_SetGraphic(obj, grf);//画像設定 ObjShot_SetDelay(obj, delay);//遅延時間設定 ObjLaser_SetLength(obj,length); ObjLaser_SetSource(obj,false); ObjLaser_SetWidth(obj,width); Obj_SetX(obj2, x-96);//x座標設定 Obj_SetY(obj2, y);//y座標設定; Obj_SetAngle(obj2, angle);//移動角度設定 ObjShot_SetGraphic(obj2, grf);//画像設定 ObjShot_SetDelay(obj2, delay);//遅延時間設定 ObjLaser_SetLength(obj2,length); ObjLaser_SetSource(obj2,false); ObjLaser_SetWidth(obj2,width); while( !Obj_BeDeleted(obj) ) {//削除されるまでループを実行 while(len<500){ ObjLaser_SetLength(obj,len); ObjLaser_SetLength(obj2,len); len+=10; yield; } if(c>=240){ Obj_SetX(obj, Obj_GetX(obj)+a); Obj_SetX(obj2, Obj_GetX(obj2)+a); if(Obj_GetX(obj)==max-1 || Obj_GetX(obj2)==mix+1){ a=-a; } } c++; yield; } } task LaserObject2(let x, let y, let angle, let length, let width ,let grf, let delay) { let c=0; let len=0; let a=1; //弾タスク初期化 let obj = Obj_Create(OBJ_LASER);//弾オブジェクトを作成 let obj2 = Obj_Create(OBJ_LASER);//弾オブジェクトを作成 Obj_SetX(obj, x);//x座標設定 Obj_SetY(obj, y);//y座標設定; Obj_SetAngle(obj, angle);//移動角度設定 ObjShot_SetGraphic(obj, grf);//画像設定 ObjShot_SetDelay(obj, delay);//遅延時間設定 ObjLaser_SetLength(obj,length); ObjLaser_SetSource(obj,false); ObjLaser_SetWidth(obj,width); Obj_SetX(obj2, x);//x座標設定 Obj_SetY(obj2, y-96);//y座標設定; Obj_SetAngle(obj2, angle);//移動角度設定 ObjShot_SetGraphic(obj2, grf);//画像設定 ObjShot_SetDelay(obj2, delay);//遅延時間設定 ObjLaser_SetLength(obj2,length); ObjLaser_SetSource(obj2,false); ObjLaser_SetWidth(obj2,width); while( !Obj_BeDeleted(obj) ) {//削除されるまでループを実行 while(len<500){ ObjLaser_SetLength(obj,len); ObjLaser_SetLength(obj2,len); len+=10; yield; } if(c>=240){ Obj_SetY(obj, Obj_GetY(obj)+a); Obj_SetY(obj2, Obj_GetY(obj2)+a); if(Obj_GetY(obj)==may-1 || Obj_GetY(obj2)==miy+1){ a=-a; } } c++; yield; } } }//[EndOfFile]