    //xƎ˂̐
    //ϐF{AŏI[U[̒(䗦)AAOtBbNAx
    //gpO[oϐFx0Mirrors, y0Mirrors, ReflectOrder, SPModeMirror
    //o̓O[oϐFȂ
    function MakeWarningLaser(n, LRateLast, D, Img, time)
    {
        //Xg
        let xList = [GetX];		//ˋ̍WXgB(ˏ)
        let yList = [GetY];		//ˋ̍WXgB(ˏ)
        let order = ReflectOrder;

        ascent(i in 0..n)
        {
            if( order[i] >= length(ListMirrors) ) {break;}	//@Iꂽ狭I

            //ѕς&O[oϐ̎荞
            xList = xList ~ [ x0Mirrors[order[i]] ];
            yList = yList ~ [ y0Mirrors[order[i]] ];

            //p[^̊m
            let Ang = atan2(yList[i+1] - yList[i], xList[i+1] - xList[i]);
            let X = [xList[i+1], yList[i+1]];
            let X0 = [xList[i], yList[i]];
            let L = distance(X, X0);
            if( i == n - 1 ) {L *= LRateLast;}		//Ō1{͒Z߂

            TControlWarningLaser(X0, L, D, Ang, Img, time);	//x[U[Ǝ
        }
    }

    task TControlWarningLaser(X, L, D, Ang, Img, time)
    {
        //{̓
        let obj = Obj_Create(OBJ_LASER);
        Obj_SetPosition(obj, X[0], X[1]);
        Obj_SetAngle(obj, Ang);
        ObjLaser_SetLength(obj, L);
        ObjLaser_SetWidth(obj, D);
        ObjShot_SetGraphic(obj, Img);
        ObjShot_SetDelay(obj, time);
        ObjLaser_SetSource(obj, false);	//𖕏

        loop
        {
            if (time <= 0)			//xIƓɍ폜
            {
                ObjShot_FadeDelete(obj);
                break;
            } else if(SPModeMirror)		//ˋ]͌xȂ
            {
                Obj_SetAlpha(obj, 0)
            } else
            {
                Obj_SetAlpha(obj, 255)
            }
            time --;
            yield;
        }
    }