Пример #1
0
        void OnSelectMask()
        {
            Vector3 worldPos = GetWorldPos(new Vector2(Input.mousePosition.x, Input.mousePosition.y));

            mSelectIndex = MaskTile.Mgr.Instance.GetMapIndex(worldPos);
            MaskTile maskTile = MaskTile.Mgr.Instance.Get(mSelectIndex);

            if (maskTile == mSelectMaskTile)
            {
                mSelectMaskTile     = null;
                mSelectMask.enabled = false;
                mSelectIndex        = -1;
            }
            else
            {
                mSelectMaskTile     = maskTile;
                mSelectMask.enabled = true;
                float sizePerTile = texSize / mTexLen;
                mSelectMask.transform.localScale = new Vector3(sizePerTile, sizePerTile, 1);
                //lz-2016.11.15 因为地图的大小不是128的倍数,所以会产生缩放,这里需要把图片的大小对应一下,避免偏移
                float x = ((mSelectIndex % mTexLen - mTexLen / 2) * texSize / mTexLen + 0.5f * sizePerTile) * offsetScale;
                float y = ((mSelectIndex / mTexLen - mTexLen / 2) * texSize / mTexLen + 0.5f * sizePerTile) * offsetScale;
                mSelectMask.transform.localPosition = new Vector3(x, y, 0);;
            }
            mWarpWnd.SetActive(false);
        }
Пример #2
0
 virtual public void UpdateGrid(Grid grid)
 {
     if (_object != null)
     {
         if (_copyobject_ori != null)
         {
             _object.SetActive(true);
         }
         //SetPos(x, y);
         grid.AttachTile = this;
         this.ParentGrid = grid;
         var selfpos = _zeropos + new Vector3(grid.ColID * Constant.TileSize.x, -grid.RowID * Constant.TileSize.y, 0);
         _object.transform.position = selfpos;
     }
     if (_copyobject_ori != null)
     {
         GameObject.Destroy(_copyobject_ori);
         _copyobject_ori = null;
     }
     if (_copyobject_target != null)
     {
         GameObject.Destroy(_copyobject_target);
         _copyobject_target = null;
     }
     if (_maskobject_ori != null)
     {
         _maskModule?.SetMaskTile(_maskobject_ori);
         _maskobject_ori = null;
     }
     if (_maskobject_copy != null)
     {
         _maskModule?.SetMaskTile(_maskobject_copy);
         _maskobject_copy = null;
     }
 }
Пример #3
0
        virtual public void CopyMoveTo(int currentTargetX, int currentTargetY, int startX, int startY, int endX, int endY, float movetime, int direct)
        {
            if (_object != null)
            {
                var currentTargetPos = _zeropos + new Vector3(currentTargetX * Constant.TileSize.x, -currentTargetY * Constant.TileSize.y, 0);

                var copycurrentpos = _zeropos + new Vector3(startX * Constant.TileSize.x, -startY * Constant.TileSize.y, 0);
                var targetpos      = _zeropos + new Vector3(endX * Constant.TileSize.x, -endY * Constant.TileSize.y, 0);

                //_copyobject = GameObject.Instantiate(_object) as GameObject;

                _copyobject_target = GameObject.Instantiate(Resources.Load("Prefabs/MaskTiles/" + _name)) as GameObject;
                _copyobject_target.SetActive(true);

                var gridctrl_target = _copyobject_target.gameObject.GetComponent <GridMotionController>();
                //add by wwh
                if (gridctrl_target == null)
                {
                    gridctrl_target = _copyobject_target.gameObject.AddComponent <GridMotionController>();
                }
                gridctrl_target.transform.position = copycurrentpos;
                var sortorder = startY * 2;
                gridctrl_target.transform.GetChild(0).GetComponent <SpriteRenderer>().sortingOrder = sortorder;
                gridctrl_target?.MoveToPosition(targetpos, movetime);

                _maskobject_copy = _maskModule?.GetMaskTile();

                if (_maskobject_copy)
                {
                    _maskobject_copy.InitMask(TileSize, sortorder, direct, false);
                    _maskobject_copy.gameObject.transform.position = copycurrentpos;
                }
            }
        }
Пример #4
0
    public MaskTile GetMaskTile()
    {
        MaskTile retMaskTile = null;

        if (_maskTileCache.Count == 0)
        {
            retMaskTile = LoadTile();
        }
        else
        {
            retMaskTile = _maskTileCache.Pop();
        }


        retMaskTile.gameObject.SetActive(true);

        return(retMaskTile);
    }
Пример #5
0
        virtual public void MoveTo(int x, int y, float movetime, int direct, bool usecopy = false)
        {
            var targetpos = _zeropos + new Vector3(x * Constant.TileSize.x, -y * Constant.TileSize.y, 0);

            if (_object == null)
            {
                return;
            }
            if (usecopy)
            {
                _copyobject_ori = GameObject.Instantiate(Resources.Load("Prefabs/MaskTiles/" + _name)) as GameObject;
                _copyobject_ori.SetActive(true);
                var gridctrl_ori = _copyobject_ori.gameObject.GetComponent <GridMotionController>();
                if (gridctrl_ori == null)
                {
                    gridctrl_ori = _copyobject_ori.gameObject.AddComponent <GridMotionController>();
                }
                gridctrl_ori.transform.position = _object.transform.position;
                var sordorder = _object.transform.GetChild(0).GetComponent <SpriteRenderer>().sortingOrder;
                gridctrl_ori.transform.GetChild(0).GetComponent <SpriteRenderer>().sortingOrder = sordorder;
                gridctrl_ori?.MoveToPosition(targetpos, movetime);

                _maskobject_ori = _maskModule?.GetMaskTile();
                if (_maskobject_ori)
                {
                    _maskobject_ori.InitMask(TileSize, sordorder, direct, true);
                    _maskobject_ori.gameObject.transform.position = targetpos;
                }

                _object?.SetActive(false);

                return;
            }
            var gridctrl = _object.gameObject.GetComponent <GridMotionController>();

            gridctrl?.MoveToPosition(targetpos, movetime);
        }
Пример #6
0
    public void SetMaskTile(MaskTile mt)
    {
        mt.gameObject.SetActive(false);

        _maskTileCache.Push(mt);
    }