public void moveBoat(GameObject boat, Vector3 pos, float speed)
 {
     judger.setForbid(true);
     boatAction = SSMoveToAction.GetSSAction(pos, speed);
     Debug.Log("Ready to run!");
     this.RunAction(boat, boatAction, this);
 }
示例#2
0
    public void MoveCharacter(MyNamespace.CharacterController characterCtrl, Vector3 destination)
    {
        Vector3 currentPos = characterCtrl.character.Role.transform.position;
        Vector3 middlePos  = currentPos;

        //采用线段式的折线运动
        //终点纵坐标小,则为从岸上船
        //否则,从船上岸
        if (destination.y > currentPos.y)
        {
            middlePos.y = destination.y;
        }
        else
        {
            middlePos.x = destination.x;
        }
        SSAction action1 = SSMoveToAction.GetSSMoveToAction(middlePos, characterCtrl.character.movingSpeed);
        SSAction action2 = SSMoveToAction.GetSSMoveToAction(destination, characterCtrl.character.movingSpeed);
        //动作队列完成上船或上岸动作
        SSAction seqAction = SequenceAction.GetSequenceAction(1, 0, new List <SSAction> {
            action1, action2
        });

        AddAction(characterCtrl.character.Role, seqAction, this);
    }
示例#3
0
    public static SSMoveToAction GetSSAction(Vector3 dest, float speed)
    {
        SSMoveToAction action = ScriptableObject.CreateInstance <SSMoveToAction>();       //创建实例

        action.dest  = dest;
        action.speed = speed;
        return(action);
    }
示例#4
0
    public static SSMoveToAction GetSSMoveToAction(Vector3 target, float speed)
    {
        SSMoveToAction action = CreateInstance <SSMoveToAction>();

        action.target = target;
        action.speed  = speed;
        return(action);
    }
示例#5
0
    public static SSMoveToAction GetSSAction(Vector3 target, float speed)
    {
        SSMoveToAction action = ScriptableObject.CreateInstance <SSMoveToAction>();//让unity自己创建一个MoveToAction实例,并自己回收

        action.target = target;
        action.speed  = speed;
        return(action);
    }
示例#6
0
    public static SSMoveToAction GetSSAction(Vector3 _target, float _speed)
    {
        //让unity自己创建一个SSMoveToAction实例确保内存正确回收
        SSMoveToAction action = ScriptableObject.CreateInstance <SSMoveToAction>();

        action.target = _target;
        action.speed  = _speed;
        return(action);
    }
示例#7
0
    public void moveBoat(GameObject boat, Vector3 endPos, float speed)
    {
        SSAction action1 = SSMoveToAction.GetSSAction(endPos, speed);

        boatMove = SequenceAction.GetSSAcition(0, 0, new List <SSAction> {
            action1
        });
        this.RunAction(boat, boatMove, this);
    }
示例#8
0
    public static SSMoveToAction GetSSMoveToAction(Vector3 target, float speed, bool catchState)
    {
        SSMoveToAction action = CreateInstance <SSMoveToAction>();

        action.des        = target;
        action.speed      = speed;
        action.isCatching = catchState;
        return(action);
    }
示例#9
0
    public void moveCha(GameObject Cha, Vector3 middle_pos, Vector3 end_pos, float speed)
    {
        SSAction action1 = SSMoveToAction.GetSSAction(middle_pos, speed);
        SSAction action2 = SSMoveToAction.GetSSAction(end_pos, speed);

        moveChaToCoastorBoat = SequenceAction.GetSSAcition(1, 0, new List <SSAction> {
            action1, action2
        });
        this.RunAction(Cha, moveChaToCoastorBoat, this);
    }
    public void moveRole(GameObject role, Vector3 middle_pos, Vector3 end_pos, float speed)
    {
        SSAction action1 = SSMoveToAction.GetSSAction(middle_pos, speed);         // GetSSAction添加动作到动作列表
        SSAction action2 = SSMoveToAction.GetSSAction(end_pos, speed);

        action_seq = SequenceAction.GetSSAcition(1, 0, new List <SSAction> {
            action1, action2
        });                                            // 1, 0 对应动作是否重复等
        this.RunAction(role, action_seq, this);        //逐条执行动作
    }
示例#11
0
    public void moveRole(GameObject role, Vector3 middle_pos, Vector3 end_pos, float speed)
    {
        SSAction action1 = SSMoveToAction.GetSSAction(middle_pos, speed);
        SSAction action2 = SSMoveToAction.GetSSAction(end_pos, speed);

        moveRoleToLandorBoat = SequenceAction.GetSSAcition(1, 0, new List <SSAction> {
            action1, action2
        });
        this.RunAction(role, moveRoleToLandorBoat, this);
    }
示例#12
0
    public void moveCharacter(GameObject ch, Vector3 middle, Vector3 dest, float speed)
    {
        //先到岸边,再上船
        SSAction action1 = SSMoveToAction.GetSSAction(middle, speed);
        SSAction action2 = SSMoveToAction.GetSSAction(dest, speed);

        movech = SequenceAction.GetSSAcition(1, 0, new List <SSAction> {
            action1, action2
        });                                                                                       //船动作组合
        this.RunAction(ch, movech, this);
    }
示例#13
0
    public void moveRole(GameObject role, Vector3 middlePos, Vector3 endPos, float speed)
    {
        //两段移动
        SSAction action1 = SSMoveToAction.GetSSAction(middlePos, speed);
        SSAction action2 = SSMoveToAction.GetSSAction(endPos, speed);

        //repeat=1,start=0,两个动作
        roleMove = SequenceAction.GetSSAcition(1, 0, new List <SSAction> {
            action1, action2
        });
        this.RunAction(role, roleMove, this);
    }
示例#14
0
    void addCombinedMoving(GameObject sourceObj, Vector3[] target, float[] speed, bool isCatching)
    {
        List <SSAction> acList = new List <SSAction>();

        for (int i = 0; i < target.Length; i++)
        {
            acList.Add(SSMoveToAction.GetSSMoveToAction(target[i], speed[i], isCatching));
        }
        SequenceAction MoveSeq = SequenceAction.GetSequenceAction(acList);

        this.AddAction(sourceObj, MoveSeq, this);
    }
示例#15
0
    public void MoveBoat(BoatControl boatCtrl)
    {
        SSMoveToAction action;

        if (boatCtrl.status == -1)
        {
            action = SSMoveToAction.GetSSMoveToAction(boatCtrl.from, BoatControl.speed);
        }
        else
        {
            action = SSMoveToAction.GetSSMoveToAction(boatCtrl.to, BoatControl.speed);
        }
        boatCtrl.status = -boatCtrl.status;
        AddAction(boatCtrl.boat, action, this);
    }
示例#16
0
    public void MoveCharacter(myGame.MyCharacterController characterCtrl, Vector3 destination)
    {
        Vector3 currentPos = characterCtrl.getPosition();
        Vector3 middlePos  = currentPos;

        if (destination.y > currentPos.y)
        {
            middlePos.y = destination.y;
        }
        else
        {
            middlePos.x = destination.x;
        }
        SSAction action1   = SSMoveToAction.GetSSMoveToAction(middlePos, characterCtrl.speed);
        SSAction action2   = SSMoveToAction.GetSSMoveToAction(destination, characterCtrl.speed);
        SSAction seqAction = SequenceAction.GetSequenceAction(1, 0, new List <SSAction> {
            action1, action2
        });

        AddAction(characterCtrl.getCharacter(), seqAction, this);
    }
示例#17
0
    public void MoveItem(ItemControl itemCtrl, Vector3 finalDes)
    {
        //Debug.Log("enter MoveItem!");
        float   time = 3;
        float   g    = -10;
        Vector3 v0;
        float   vy_ByGravity = 0;
        float   stepTime     = 0.1f;
        Vector3 currentDes   = itemCtrl.item.transform.position;

        List <SSAction> divide = new List <SSAction>();

        // the des here is the final des
        v0 = new Vector3((finalDes.x - itemCtrl.item.transform.position.x) / time,
                         (finalDes.y - itemCtrl.item.transform.position.y) / time - 0.5f * g * time, (finalDes.z - itemCtrl.item.transform.position.z) / time);
        //Debug.Log(v0);
        //Debug.Log(time / stepTime);


        // divide the curve to many parts
        for (int i = 0; i < time / stepTime - 1; i++)
        {
            //Debug.Log(divide[i]);
            //Debug.Log(currentDes);
            // change the vy
            vy_ByGravity += g * stepTime;
            // set current des
            currentDes   += v0 * stepTime;
            currentDes.y += vy_ByGravity * stepTime;
            // get the current speed
            float currentSpeed = Mathf.Sqrt(v0.x * v0.x + (v0.y + vy_ByGravity) * (v0.y + vy_ByGravity));
            // add one of the movements
            SSAction temp = SSMoveToAction.GetSSMoveToAction(currentDes, currentSpeed * 10);
            divide.Add(temp);
        }
        SSAction seqAction = SequenceAction.GetSequenceAction(1, 0, divide);

        AddAction(itemCtrl.item, seqAction, this);
    }
示例#18
0
    public void moveChar(MyCharacterController charCtrl, Vector3 dest, float speed)
    {
        Vector3 middle = dest;
        Vector3 chara  = charCtrl.getGameobj().transform.position;

        if (dest.y < chara.y)
        {
            middle.y = chara.y;
        }
        else
        {
            middle.x = chara.x;
        }

        SSAction action1 = SSMoveToAction.GetSSMoveToAction(middle, speed);
        SSAction action2 = SSMoveToAction.GetSSMoveToAction(dest, speed);

        char_move = SSSequenceAction.GetSSSequenceAction(1, 0, new List <SSAction> {
            action1, action2
        });
        this.RunAction(charCtrl.getGameobj(), char_move, this);
    }
    public void moveCharacter(GameObject chr, Vector3 pos, float speed)
    {
        judger.setForbid(true);
        Vector3 start = chr.transform.position;
        Vector3 tmp   = pos;

        if (start.y > pos.y)
        {
            tmp.y = start.y;
        }
        else if (start.y < pos.y)
        {
            tmp.x = start.x;
        }
        SSAction act1 = SSMoveToAction.GetSSAction(tmp, speed);
        SSAction act2 = SSMoveToAction.GetSSAction(pos, speed);

        characterAction = CCSequenceAction.GetSSAcition(1, 0, new List <SSAction> {
            act1, act2
        });
        this.RunAction(chr, characterAction, this);
    }
示例#20
0
    public void moveChar(MyCharacterController charCtrl, Vector3 dest, float speed)
    {
        //moveable.setDestion()的功能
        Vector3 middle = dest;
        Vector3 chara  = charCtrl.getGameobj().transform.position;

        if (dest.y < chara.y)   // character from bank to boat,说明角色在岸上,可以上船
        {
            middle.y = chara.y;
        }
        else                                                                    // character from boat to bank   说明角色在船上,可以上岸
        {
            middle.x = chara.x;
        }

        SSAction action1 = SSMoveToAction.GetSSMoveToAction(middle, speed);
        SSAction action2 = SSMoveToAction.GetSSMoveToAction(dest, speed);

        char_move = SSSequenceAction.GetSSSequenceAction(1, 0, new List <SSAction> {
            action1, action2
        });
        this.RunAction(charCtrl.getGameobj(), char_move, this);
    }
 public void moveBoat(GameObject boat, Vector3 target, float speed)
 {
     move_boat = SSMoveToAction.GetSSAction(target, speed); //新建一个动作
     this.RunAction(boat, move_boat, this);                 //RunAction添加动作对象和执行传入的动作
 }
示例#22
0
 public void moveBoat(GameObject boat, Vector3 target, float speed)
 {
     moveBoatToEndOrStart = SSMoveToAction.GetSSAction(target, speed);
     this.RunAction(boat, moveBoatToEndOrStart, this);
 }
示例#23
0
 public void moveBoat(BoatController boatCtrl, Vector3 dest, float speed)
 {
     boat_move = SSMoveToAction.GetSSMoveToAction(dest, speed);
     this.RunAction(boatCtrl.getGameobj(), boat_move, this);
 }
示例#24
0
    public void MoveBoat(BoatController boatController)
    {
        SSMoveToAction action = SSMoveToAction.GetSSMoveToAction(boatController.GetDestination(), boatController.boat.movingSpeed);

        AddAction(boatController.boat._Boat, action, this);
    }
示例#25
0
 public void moveBoat(GameObject boat, Vector3 dest, float speed)
 {
     moveboat = SSMoveToAction.GetSSAction(dest, speed);
     this.RunAction(boat, moveboat, this);
 }
示例#26
0
 public void moveBoat(GameObject boat, Vector3 target, float speed)
 {
     move_boat_action = SSMoveToAction.GetSSAction(target, speed);
     this.RunAction(boat, move_boat_action, this);
 }
示例#27
0
 void addSingleMoving(GameObject sourceObj, Vector3 target, float speed, bool isCatching)
 {
     this.AddAction(sourceObj, SSMoveToAction.GetSSMoveToAction(target, speed, isCatching), this);
 }
示例#28
0
    public void MoveBoat(BoatController boatController)
    {
        SSMoveToAction action = SSMoveToAction.GetSSMoveToAction(boatController.getDestination(), boatController.speed);

        AddAction(boatController.getBoat(), action, this);
    }