task --- { let ObjId = []; // 配列 let i++; // カウント用 loop(180) { let obj = CreateShotA1( … ); // 普通に弾設定 ObjId = ObjId ~ [obj]; // 配列にobjを入れる i++; // カウント++ } ObjShot_BulletDelay01(ObjId,texture,delay); // エフェクトタスク ObjId = []; // 配列初期化 } //----------------------------------------------------------------------------------------------------------------------------------------------------- task ObjShot_BulletDelay01(id,ShotID,Time) { // 弾IDからデータ取得 let ObjInfo = GetShotDataInfoA1(ShotID,TARGET_ENEMY,INFO_DELAY_COLOR); // 弾オブジェクトの遅延色取得([Color,Scale,Type]を返す) let ObjBlend = GetShotDataInfoA1(ShotID,TARGET_ENEMY,INFO_BLEND); // 弾オブジェクトの合成種別取得 let ObjColor = ObjInfo[0]; // 弾オブジェクトの色設定取得 let obj = []; let i = 0; // 弾IDのデータに従い色々補正 alternative(ObjInfo[2]) case(0) { … } case(1) { … } case(2) { … } case(3) { … } loop(length(id)) { obj = obj ~ [ObjPrim_Create(OBJ_SPRITE_2D)]; Obj_SetRenderPriorityI(obj[i],51); ObjRender_SetPosition(obj[i],ObjMove_GetX(id[i]),ObjMove_GetY(id[i]),0); ObjRender_SetBlendType(obj[i],ObjBlend); ObjPrim_SetTexture(obj[i],eff_delay); ObjSprite2D_SetSourceRect(obj[i], … ); ObjSprite2D_SetDestCenter(obj[i]); ObjRender_SetAngleZ(obj[i],ObjMove_GetAngle(id[i])); i++; } loop(Time) { i = 0; // パラメータとか alpha01 += alpha02; scale01 += scale02; scale03 = scale04-scale05*sin(scale01); loop(length(id)) { ObjRender_SetScaleXYZ(obj[i],scale03,scale03,1); ObjRender_SetAlpha(obj[i],alpha01); i++; } yield; } i = 0; // オブジェクト削除 loop(length(id)) { Obj_Delete(obj[i]); i++; } }