Example #1
0
    public void OnMove(UnitComponent component, FourDirection direction)
    {
        var root     = ToPoint(component.Point);
        var prePoint = CalcNextPoint(root, direction);

        if (IsOutOfScene(prePoint)) //   TODO:超出地图范围
        {
            return;
        }
        if (Grids[prePoint.X, prePoint.Y].Type != TiledType.Normal)
        {
            return;
        }
        if (Grids[prePoint.X, prePoint.Y].Unit != null)
        {
            // 已经存在单位   -   切换为攻击模式
        }
        else
        {
            Grids[root.X, root.Y].Unit         = null;
            component.Point                    = ToVector3(prePoint);
            Grids[prePoint.X, prePoint.Y].Unit = component;
            //
            component.transform.position = component.Point;
        }
    }
Example #2
0
    public Point CalcNextPoint(Point root, FourDirection direction)
    {
        switch (direction)
        {
        case FourDirection.Top:
            return(root + UnitConst.Top);

        case FourDirection.Bottom:
            return(root + UnitConst.Bottom);

        case FourDirection.Left:
            return(root + UnitConst.Left);

        case FourDirection.Right:
            return(root + UnitConst.Right);

        default:
            return(root);
        }
    }