Ejemplo n.º 1
0
    public virtual bool MoveTo(Vector3f pos)
    {
        if (mScene == null)
        {
            return(false);
        }

        if (mActionCenter == null)
        {
            return(false);
        }

        Vector3f        curPos  = GetPosition3f();
        List <Vector2f> wayPath = mScene.FindPath(this, new Vector2f(curPos.x, curPos.z), new Vector2f(pos.x, pos.z));

        if (wayPath == null)
        {
            return(false);
        }

        ActionMoveInitParam movParam = new ActionMoveInitParam();

        for (int i = 0; i < wayPath.Count; i++)
        {
            Vector2f v = wayPath[i];
            movParam.wayPoint.Add(new Vector3f(v.x, 0.0f, v.y));
        }
        return(mActionCenter.StartAction(movParam) == ErrorCode.Succeeded);
    }
Ejemplo n.º 2
0
    public ErrorCode Restart(ActionInitParam param)    // 不停止动画
    {
        if (param == null)
        {
            return(ErrorCode.InvalidParam);
        }

        if (param.GetType() != typeof(ActionMoveInitParam))
        {
            return(ErrorCode.InvalidParam);
        }

        ActionMoveInitParam thisParam = (ActionMoveInitParam)param;

        if (thisParam.wayOrDir)
        {
            mPathNodes = thisParam.wayPoint;

            mCurrentIndex = 0;

            mMoveMode = MOVE_MODE.MOVE_MODE_WAY;
        }
        else
        {
            mMoveMode      = MOVE_MODE.MOVE_MODE_DIRECTION;
            mMoveDirection = thisParam.dir;

            mOwner.SetMoveDirection(mMoveDirection);
        }

        return(ErrorCode.Succeeded);
    }
Ejemplo n.º 3
0
    //朝着方向移动
    virtual public bool MoveDir(float dir)
    {
        if (mScene == null)
        {
            return(false);
        }

        if (mActionCenter == null)
        {
            return(false);
        }
        PlayerController.Instance.BreakQuestMove();
        ActionMoveInitParam movParam = new ActionMoveInitParam();

        movParam.wayOrDir = false;
        movParam.dir      = dir;
        return(mActionCenter.StartAction(movParam) == ErrorCode.Succeeded);
    }