Пример #1
0
    void UpdateTileBitmask(int x, int y)
    {
        if (tiles[x, y].tile != null)
        {
            if (GetTileData(x, y).usesBitmask)
            {
                int bitmaskValue = GetBitmaskValue(x, y);
                int spriteIndex  = bitmaskValueToIndex[bitmaskValue];

                //print ("Value for (" + x + ", " + y + ") is " + bitmaskValue);

                BitmaskSprite bitmaskSprite = bitmaskSprites[spriteIndex];

                SpriteRenderer srend = tiles[x, y].GetMainSprite();
                srend.sprite             = bitmaskSprite.sprite;
                srend.transform.rotation = Quaternion.Euler(0, 0, bitmaskSprite.angle);
                //TODO: calculate the collider accordingly
            }
        }
    }
Пример #2
0
    /*void CreateBackground ()
     * {
     *  GameObject backgroundObj = GameObject.CreatePrimitive(PrimitiveType.Quad);
     *  backgroundObj.name = "Background";
     *  backgroundObj.transform.position = new Vector3 ((width / 2) - 0.5f, (height / 2) - 0.5f, 0);
     *  backgroundObj.transform.localScale = new Vector3 (width, height, 1);
     *
     *  backgroundObj.transform.parent = this.transform;
     *
     *  Renderer rend = backgroundObj.GetComponentInChildren <Renderer> ();
     *  rend.material = backgroundMat;
     *  rend.material.mainTextureScale = new Vector2 (width, height);
     * }*/

    BitmaskSprite[] LoadBitmaskSprites(string prefabName)
    {
        BitmaskSprite[] newSprites = new BitmaskSprite[48];

        //Sprite baseSprite = null;//Resources.Load<Sprite>(prefabName + "/BaseSprite");
        Sprite sideSprite        = Resources.Load <Sprite>(prefabName + "/SideSprite");
        Sprite innerCornerSprite = Resources.Load <Sprite>(prefabName + "/InnerCornerSprite");
        Sprite outerCornerSprite = Resources.Load <Sprite>(prefabName + "/InnerCornerSprite");
        Sprite tSplitSprite      = Resources.Load <Sprite>(prefabName + "/TSplitSprite");
        Sprite endSprite         = Resources.Load <Sprite>(prefabName + "/EndSprite");
        Sprite boxSprite         = Resources.Load <Sprite>(prefabName + "/BaseSprite");
        Sprite xSprite           = Resources.Load <Sprite>(prefabName + "/IntersectionSprite");

        newSprites[0]  = new BitmaskSprite(null, 0);
        newSprites[1]  = new BitmaskSprite(endSprite, 180);
        newSprites[2]  = new BitmaskSprite(endSprite, 270);
        newSprites[3]  = new BitmaskSprite(innerCornerSprite, 90);
        newSprites[4]  = new BitmaskSprite(outerCornerSprite, 90);
        newSprites[5]  = new BitmaskSprite(endSprite, 90);
        newSprites[6]  = new BitmaskSprite(innerCornerSprite, 0);
        newSprites[7]  = new BitmaskSprite(outerCornerSprite, 0);
        newSprites[8]  = new BitmaskSprite(sideSprite, 0);
        newSprites[9]  = new BitmaskSprite(tSplitSprite, 0);
        newSprites[10] = new BitmaskSprite(tSplitSprite, 0);
        newSprites[11] = new BitmaskSprite(tSplitSprite, 0);
        newSprites[12] = new BitmaskSprite(sideSprite, 180);
        newSprites[13] = new BitmaskSprite(endSprite, 0);
        newSprites[14] = new BitmaskSprite(sideSprite, 90);
        newSprites[15] = new BitmaskSprite(innerCornerSprite, 180);
        newSprites[16] = new BitmaskSprite(tSplitSprite, 90);
        newSprites[17] = new BitmaskSprite(tSplitSprite, 90);
        newSprites[18] = new BitmaskSprite(innerCornerSprite, 270);
        newSprites[19] = new BitmaskSprite(tSplitSprite, 270);
        newSprites[20] = new BitmaskSprite(tSplitSprite, 270);
        newSprites[21] = new BitmaskSprite(tSplitSprite, 180);
        newSprites[22] = new BitmaskSprite(xSprite, 0);
        newSprites[23] = new BitmaskSprite(xSprite, 0);
        newSprites[24] = new BitmaskSprite(xSprite, 0);
        newSprites[25] = new BitmaskSprite(tSplitSprite, 180);
        newSprites[26] = new BitmaskSprite(outerCornerSprite, 180);
        newSprites[27] = new BitmaskSprite(tSplitSprite, 90);
        newSprites[28] = new BitmaskSprite(sideSprite, 270);
        newSprites[29] = new BitmaskSprite(tSplitSprite, 180);
        newSprites[30] = new BitmaskSprite(xSprite, 0);
        newSprites[31] = new BitmaskSprite(tSplitSprite, 270);
        newSprites[32] = new BitmaskSprite(xSprite, 0);
        newSprites[33] = new BitmaskSprite(innerCornerSprite, 270);
        newSprites[34] = new BitmaskSprite(outerCornerSprite, 270);
        newSprites[35] = new BitmaskSprite(tSplitSprite, 270);
        newSprites[36] = new BitmaskSprite(sideSprite, 90);
        newSprites[37] = new BitmaskSprite(tSplitSprite, 180);
        newSprites[38] = new BitmaskSprite(xSprite, 0);
        newSprites[39] = new BitmaskSprite(xSprite, 0);
        newSprites[40] = new BitmaskSprite(tSplitSprite, 90);
        newSprites[41] = new BitmaskSprite(innerCornerSprite, 180);
        newSprites[42] = new BitmaskSprite(sideSprite, 0);
        newSprites[43] = new BitmaskSprite(tSplitSprite, 0);
        newSprites[44] = new BitmaskSprite(innerCornerSprite, 0);
        newSprites[45] = new BitmaskSprite(innerCornerSprite, 90);
        newSprites[46] = new BitmaskSprite(null, 0);
        newSprites[47] = new BitmaskSprite(boxSprite, 0);

        return(newSprites);
    }