示例#1
0
            public CloneLayoutCommand(PlayerStatusTypeViewModel newPlayerStatus, TLayout layout, ObservableCollection <TLayout> layoutCollection)
            {
                _newPlayerStatus  = newPlayerStatus;
                _layout           = layout;
                _layoutCollection = layoutCollection;

                _layout.PropertyChanged += _layout_PropertyChanged;
            }
示例#2
0
    private void InitAfterUICreate()
    {
        //计算布局

        var gameui = UIManager.Ins.GetWindow <GameUI>("gameui");

        layout = GameScn.CaculateLayout(gameui.TopHudPos, gameui.DownHudPos);

        //NTODO 载入关卡数据
        LoadMgr.Ins.LoadMapdate(CurLevel, InitMap);
    }
            /// <summary>
            /// Tries to get next layout.
            /// </summary>
            /// <returns>Null if not successful.</returns>
            public bool TryGetLayout(out TLayout layout)
            {
                var hasMore = enumerator.MoveNext();

                layout = hasMore ? enumerator.Current : default(TLayout);

                if (!hasMore)
                {
                    IsFinished = true;
                }

                return(hasMore);
            }
示例#4
0
    public static TLayout CaculateLayout(Vector3 topHudPos, Vector3 downHudPos)
    {
        TLayout layout = new TLayout();

        //--------------------游戏可用区域
        Vector3 sub = topHudPos - downHudPos;

        layout.UseableGameAreaH       = sub.y;
        layout.UseableGameAreaW       = CameraMgr.CameraW - BoundSpaceW * 2f;
        layout.UseableGameAreaLeft    = 0 - CameraMgr.CameraW / 2 + BoundSpaceW;
        layout.UseableGameAreaRight   = CameraMgr.CameraW / 2 - BoundSpaceW;
        layout.UseableGameAreaTop     = topHudPos.y;
        layout.UseableGameAreaDown    = downHudPos.y;
        layout.UseableGameAreaAspect  = layout.UseableGameAreaH / layout.UseableGameAreaW;
        layout.UseableGameAreaCenterX = 0;//layout.UseableGameAreaLeft + layout.UseableGameAreaW / 2;
        layout.UseableGameAreaCenterY = layout.UseableGameAreaTop - layout.UseableGameAreaH / 2;


        //var go = GameObject.CreatePrimitive(PrimitiveType.Sphere);
        //go.transform.position = new Vector3(layout.UseableGameAreaLeft, 0,0);
        //go.transform.localScale = Vector3.one * 0.5f;
        //go.name = "left";

        //go = GameObject.CreatePrimitive(PrimitiveType.Sphere);
        //go.transform.position = new Vector3(layout.UseableGameAreaRight, 0, 0);
        //go.transform.localScale = Vector3.one * 0.5f;
        //go.name = "right";

        //go = GameObject.CreatePrimitive(PrimitiveType.Sphere);
        //go.transform.position = new Vector3(0, layout.UseableGameAreaTop, 0);
        //go.transform.localScale = Vector3.one * 0.5f;
        //go.name = "top";

        //go = GameObject.CreatePrimitive(PrimitiveType.Sphere);
        //go.transform.position = new Vector3(0, layout.UseableGameAreaDown, 0);
        //go.transform.localScale = Vector3.one * 0.5f;
        //go.name = "down";

        //go = GameObject.CreatePrimitive(PrimitiveType.Sphere);
        //go.transform.position = topHudPos;
        //go.transform.localScale = Vector3.one * 0.5f;
        //go.name = "tophud";

        //go = GameObject.CreatePrimitive(PrimitiveType.Sphere);
        //go.transform.position = downHudPos;
        //go.transform.localScale = Vector3.one * 0.5f;
        //go.name = "downhud";


        //--------------------自适应后tile大小

        bool bAutoSizeW = layout.UseableGameAreaAspect > OrignalTileAspect ? true : false;

        if (bAutoSizeW)
        {
            //可用区域aspect大于游戏区域(单个块的aspect),以w为基准进行计算
            var w = OrignalTileW * MAX_NUM;
            layout.Scale = layout.UseableGameAreaW / w;
        }
        else
        {
            //可用区域aspect小于游戏区域(单个块的aspect),以h为基准进行计算
            var h = OrignalTileH * MAX_NUM;
            layout.Scale = layout.UseableGameAreaH / h;
        }

        //自适应后tile的H,W
        layout.TileH = OrignalTileH * layout.Scale;
        layout.TileW = OrignalTileW * layout.Scale;

        Debug.Log("bW:" + bAutoSizeW + " scale:" + layout.Scale + " tw:" + layout.TileW + " th:" + layout.TileH);

        //---------------------游戏区域
        layout.GameAreaH = layout.TileH * MAX_NUM;
        layout.GameAreaW = layout.TileW * MAX_NUM;
        if (bAutoSizeW)
        {
            layout.GameAreaLeft  = layout.UseableGameAreaLeft;
            layout.GameAreaRight = layout.UseableGameAreaRight;
            layout.GameAreaTop   = layout.UseableGameAreaCenterY + layout.GameAreaH / 2;
            layout.GameAreaDown  = layout.UseableGameAreaCenterY - layout.GameAreaH / 2;
        }
        else
        {
            layout.GameAreaTop   = layout.UseableGameAreaTop;
            layout.GameAreaDown  = layout.UseableGameAreaDown;
            layout.GameAreaLeft  = layout.UseableGameAreaCenterX - layout.GameAreaW / 2;
            layout.GameAreaRight = layout.UseableGameAreaCenterX + layout.GameAreaW / 2;
        }

        layout.TileStartPos = new Vector3(layout.GameAreaLeft, layout.GameAreaTop, 0);

        //Debug.Log("test--->StartPos:"+ layout.TileStartPos);



        return(layout);
    }