Esempio n. 1
0
    //kabeP.pngなどから情報を取得。
    public void LoadWallInfo(string stagename)
    {
        MenyBullets menybulletscomp = GetComponent <MenyBullets>(); //コンポーネント
        Loadpngs    loadpngs        = GetComponent <Loadpngs>();    // コンポーネント

        //壁xと速度を画像から取得
        int[,] tmpbmp;
        tmpbmp = loadpngs.LoadBmp(Application.dataPath + "\\stage\\" + stagename + "\\kabex.bmp");
        TexToKb(menybulletscomp.kbx, menybulletscomp.kkx, tmpbmp);
        //壁xと速度を画像から取得
        tmpbmp = loadpngs.LoadBmp(Application.dataPath + "\\stage\\" + stagename + "\\kabey.bmp");
        TexToKb(menybulletscomp.kby, menybulletscomp.kky, tmpbmp);
        //kabePの設定
        tmpbmp = loadpngs.LoadBmp(Application.dataPath + "\\stage\\" + stagename + "\\kabep.bmp");
        TexToKb_p(menybulletscomp.kbp, menybulletscomp.kkp, tmpbmp);
        tmpbmp = loadpngs.LoadBmp(Application.dataPath + "\\stage\\" + stagename + "\\kabew.bmp");
        TexToKb_w(menybulletscomp.kbx, menybulletscomp.kby, menybulletscomp.kkx, menybulletscomp.kky, menybulletscomp.kbp, tmpbmp);
        menybulletscomp.kabePori.SetData(menybulletscomp.kbp);
        menybulletscomp.kabeX.SetData(menybulletscomp.kbx);
        menybulletscomp.kabeY.SetData(menybulletscomp.kby);
        menybulletscomp.YUN.SetData(menybulletscomp.kkx);
        menybulletscomp.YVN.SetData(menybulletscomp.kky);
        menybulletscomp.YPN.SetData(menybulletscomp.kkp);
        menybulletscomp.YPN.GetData(menybulletscomp.kbpori);//実質kbpori=kbp 配列子ぴ
    }
Esempio n. 2
0
    void LoadUfoColi()//bmpから見た目当たり判定の定義点をload
    {
        int[,] tmpbmp;
        Loadpngs loadpngs = GetComponent <Loadpngs>();

        tmpbmp = loadpngs.LoadBmp(Application.dataPath + "\\Textures\\ufo\\ufocoli.bmp");
        uint[] hostdata = new uint[1600];
        for (int i = 0; i < 40; i++)
        {
            for (int j = 0; j < 40; j++)
            {
                int pixc = tmpbmp[i, j];
                if (((pixc % 256) == 0) & ((pixc / 256 % 256) == 255) & ((pixc / 65536 % 256) == 0))
                {//緑いろのところなら当たり判定定義点になる
                    hostdata[ufocoli_count] = (uint)(i - 20 + 2048) + (uint)(j - 20 + 2048) * 4096;
                    ufocoli_count++;
                }
            }
        }
        ufocoli = new Vector2[ufocoli_count];
        //
        for (int i = 0; i < ufocoli_count; i++)
        {
            float fx = 0.25f * ((float)(hostdata[i] % 4096) - 2048.0f + 0.5f);
            float fy = 0.25f * ((float)((hostdata[i] / 4096) % 4096) - 2048.0f + 0.5f);
            ufocoli[i] = new Vector2(fx, fy);
        }
    }
Esempio n. 3
0
    void LoadUfoData()//bmpからload
    {
        int ufo_count = 0;

        int[,] tmpbmp;
        Loadpngs loadpngs = GetComponent <Loadpngs>();

        tmpbmp = loadpngs.LoadBmp(Application.dataPath + "\\Textures\\ufo\\cfdcoli.bmp");
        uint[] hostdata = new uint[144];
        for (int i = 0; i < 12; i++)
        {
            for (int j = 0; j < 12; j++)
            {
                if ((tmpbmp[i, j] % 256) == 0)
                {//黒いところならCFD上で壁になる
                    hostdata[ufo_count] = (uint)(i - 5 + 2048) + (uint)(j - 5 + 2048) * 4096;
                    ufo_count++;
                }
            }
        }
        ufo_vram = new ComputeBuffer(ufo_count, Marshal.SizeOf(typeof(uint)));
        ufo_vram.SetData(hostdata, 0, 0, ufo_count);
    }
Esempio n. 4
0
    void LoadObjData()//bmpからload
    {
        int      obj_count = 0;
        Loadpngs loadpngs  = GetComponent <Loadpngs>();

        int[,] tmpbmp = loadpngs.LoadBmp(Application.dataPath + "\\Textures\\stageobjs\\" + obj_bmp_id + "cfdcoli.bmp");
        w             = tmpbmp.GetLength(0);
        h             = tmpbmp.GetLength(1);
        hostdata      = new uint[w * h];
        for (int i = 0; i < w; i++)
        {
            for (int j = 0; j < h; j++)
            {
                if ((tmpbmp[i, j] % 256) == 0)
                {//黒いところならCFD上で壁になる
                    hostdata[obj_count] = (uint)(i - w / 2 + 2048) + (uint)(j - h / 2 + 2048) * 4096;
                    obj_count++;
                }
            }
        }
        obj_vram = new ComputeBuffer(obj_count, Marshal.SizeOf(typeof(uint)));
        obj_vram.SetData(hostdata, 0, 0, obj_count);
    }
Esempio n. 5
0
    //RYS側からみたload。画像のうち255,0,255のところが粒子発生点になるのでそれを登録
    public void LoadWallInfo2(string stagename)
    {
        DotParticle dtprtcomp = GetComponent <DotParticle>(); //コンポーネント

        dtprtcomp.someofRYS.dataxy_len = 0;                   //何度もloadwallするためこれは毎回リセット必要
        Loadpngs loadpngs = GetComponent <Loadpngs>();        // コンポーネント

        //壁xと速度を画像から取得
        int[,] tmpbmp;
        tmpbmp = loadpngs.LoadBmp(Application.dataPath + "\\stage\\" + stagename + "\\kabew.bmp");
        int ginfo_g;

        for (int y = 0; y < Const.CO.WY; y++)
        {
            for (int x = 0; x < Const.CO.WX; x++)
            {
                ginfo_g = (tmpbmp[x, y] / 256) % 256;
                if (ginfo_g < 128)
                {                                                   //色の度合いによって粒子の出る割合が異なる。見た目をわかりやすくするためにg=128を0として色が濃いほどたくさん粒子がでる仕様
                    dtprtcomp.someofRYS.Inset(x, y, 128 - ginfo_g); //粒子湧出点を定義、あとで変更、追加もできる
                }
            }
        }
    }