Exemplo n.º 1
0
    /// <summary>
    /// 根据地块id取得传送门坐标数组
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    public static Vector2[] GetDoors(int id)
    {
        Vector2 size       = TileModel.size;
        Vector2 coordinate = TileModel.GetCoordinateById(id);
        //上
        Vector2 coordinateUp = new Vector2(coordinate.x, coordinate.y + 1);

        coordinateUp.y = coordinateUp.y > size.y - 1 ? coordinateUp.y - size.y : coordinateUp.y;
        //下
        Vector2 coordinateDown = new Vector2(coordinate.x, coordinate.y - 1);

        coordinateDown.y = coordinateDown.y < 0 ? coordinateDown.y + size.y : coordinateDown.y;
        //左
        Vector2 coordinateLeft = new Vector2(coordinate.x - 1, coordinate.y);

        coordinateLeft.x = coordinateLeft.x < 0 ? coordinateLeft.x + size.x : coordinateLeft.x;
        //右
        Vector2 coordinateRight = new Vector2(coordinate.x + 1, coordinate.y);

        coordinateRight.x = coordinateRight.x > size.x - 1 ? coordinateRight.x - size.x : coordinateRight.x;

        return(new Vector2[4] {
            coordinateUp, coordinateDown, coordinateLeft, coordinateRight
        });
    }