示例#1
0
    public static CCMoveToAction GetSSAction(float _speed)
    {
        CCMoveToAction act = ScriptableObject.CreateInstance <CCMoveToAction> ();

        act.speed = act.shotSpeed = _speed;
        return(act);
    }
示例#2
0
    public static CCMoveToAction GetSSAction()
    {
        CCMoveToAction action = ScriptableObject.CreateInstance <CCMoveToAction>();


        return(action);
    }
示例#3
0
    public void Boatmove()
    {
        complete = SSActionEventType.Started;
        CCMoveToAction action = CCMoveToAction.getAction(boat.moveBoatPos(), boat.move_speed);

        addAction(boat.getBoat(), action, this);
    }
示例#4
0
 public void PlayDisk()
 {
     if (disks.used.Count > 0)
     {
         GameObject     disk         = disks.used[0];
         float          x            = Random.Range(-10, 10);
         CCMoveToAction moveToAction = CCMoveToAction.GetSSAction(new Vector3(x, 12, 0), 3 * (Mathf.CeilToInt(FirstSceneController.times / 10) + 1) * Time.deltaTime);
         seq.Add(moveToAction);
         this.RunAction(disk, moveToAction, this);
         disks.used.RemoveAt(0);
     }
     if (Input.GetMouseButtonDown(0) && sceneController.flag == 0)
     {
         Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
         RaycastHit hitGameObject;
         if (Physics.Raycast(ray, out hitGameObject))
         {
             GameObject gameObject = hitGameObject.collider.gameObject;
             if (gameObject.tag == "disk")
             {
                 foreach (var k in seq)
                 {
                     if (k.gameObject == gameObject)
                     {
                         k.transform.position = k.target;
                     }
                 }
                 userClickAction = UserClickAction.GetSSAction();
                 this.RunAction(gameObject, userClickAction, this);
             }
         }
     }
     base.Update();
 }
示例#5
0
    // 实例对象在具体调用时只需要简单地修改接口中的参数即可实现移动
    public SSAction ApplyCCMoveToAction(GameObject obj, Vector3 target, float speed, ISSActionCallback completed)
    {
        CCMoveToAction ac = obj.AddComponent <CCMoveToAction>();

        ac.RunAction(target, speed, completed);
        return(ac);
    }
示例#6
0
    public void GoAround(GameObject p)
    {
        CCMoveToAction action = CCMoveToAction.getAction(p.GetComponent <Prop>().block, 0.6f, GetNewTarget(p));

        actionList.Add(p.GetComponent <Prop>().block, action);
        addAction(p.gameObject, action, this);
    }
示例#7
0
    public CCMoveToAction ApplyMoveToAction(GameObject obj, float speed)
    {
        CCMoveToAction temp = CCMoveToAction.GetSSAction(speed);

        base.RunAction(obj, temp, this);
        return(temp);
    }
示例#8
0
 public void passOffBoatToRight() // 同上
 {
     if (boatSize() != 0)
     {
         firstScene.nowStatus = Status.rightoff;
         int pos = boatSize() - 1;
         boatPass[pos].transform.parent = null;
         CCMoveToAction moveA = CCMoveToAction.GetSSAction(Shore.rightShoreside, passSpeed);
         CCMoveToAction moveB;
         if (boatPassName[pos] == "devil")
         {
             moveB = CCMoveToAction.GetSSAction(Devil.rightFirstPosition + Devil.spaceWithTwo * firstScene.rightDevils.Count, passSpeed);
             // 右边恶魔的动作
             firstScene.rightDevils.Push(boatPass[pos]); // 船上恶魔移动到右岸上
         }
         else
         {
             moveB = CCMoveToAction.GetSSAction(Priest.rightFirstPosition + Priest.spaceWithTwo * firstScene.rightPriests.Count, passSpeed);
             // 右岸牧师的动作
             firstScene.rightPriests.Push(boatPass[pos]); // 船上牧师移动到右岸上
         }
         rightPassOffBoat = CCSequenceAction.GetSSAction(new List <SSAction> {
             moveA, moveB
         });
         this.runAction(boatPass[pos], rightPassOffBoat, this);
         // 进行动作
         boatPass[pos] = null; // 清除船上物体
     }
 }
示例#9
0
 public void onBoat(GameObject man, int type, int i)
 {
     if (type == 1)
     {
         Vector3         target1  = man.transform.position + new Vector3(0, 1, 0);
         CCMoveToAction  action1  = CCMoveToAction.GetSSAction(target1, 10f);
         Vector3         target2  = new Vector3(3, 0.8f, 10) + new Vector3(0.6f * (0 - i), 0, 0);
         CCMoveToAction  action2  = CCMoveToAction.GetSSAction(target2, 10f);
         List <SSAction> sequence = new List <SSAction>();
         sequence.Add(action1);
         sequence.Add(action2);
         CCSequenceAction ssaction = CCSequenceAction.GetSSAction(0, sequence);
         this.RunAction(man, ssaction, this);
     }
     else if (type == 0)
     {
         Vector3         target1  = man.transform.position + new Vector3(0, 1, 0);
         CCMoveToAction  action1  = CCMoveToAction.GetSSAction(target1, 10f);
         Vector3         target2  = new Vector3(-3, 0.8f, 10) + new Vector3(0.6f * (0 + i), 0, 0);
         CCMoveToAction  action2  = CCMoveToAction.GetSSAction(target2, 10f);
         List <SSAction> sequence = new List <SSAction>();
         sequence.Add(action1);
         sequence.Add(action2);
         CCSequenceAction ssaction = CCSequenceAction.GetSSAction(0, sequence);
         this.RunAction(man, ssaction, this);
     }
 }
    public void UpBoat(string name)
    {
        // if (gameState != GameState.Playing) return;
        if (boatState != MoveState.AtSrc)
        {
            return;
        }
        if (passers.Count >= 2)
        {
            return;
        }
        var list = findRoles(sideSrc, name);

        if (list.Count == 0)
        {
            return;
        }
        var role = list[0];

        upBoat = CCMoveToAction.GetSSAction(boatPosSrc +
                                            new Vector3(0, 1f + spacingOffset, 0) * (passers.Count + 1),
                                            roleSpeed);
        gameState = GameState.Animating;
        runAction(role, upBoat, this);
    }
示例#11
0
    public static CCMoveToAction GetSSAction(Vector3 target)
    {
        CCMoveToAction action = ScriptableObject.CreateInstance <CCMoveToAction>();

        action.target = target;
        return(action);
    }
示例#12
0
    public void MoveCharacter(GameObject character, Vector3 target, float speed)
    {
        Vector3 forward, up, down;
        float   jumpDistance = target.x < 0 ? -8 : 8;

        List <SSAction> sequence;

        if (character.transform.position.y > target.y)
        {
            forward    = target;
            forward.x += jumpDistance;
            forward.y  = character.transform.position.y;
            down       = target;
            CCMoveToAction moveForward = CCMoveToAction.GetSSAction(forward, speed);
            CCMoveToAction jump        = CCMoveToAction.GetSSAction(down, speed);
            sequence = new List <SSAction> {
                moveForward, jump
            };
        }
        else
        {
            forward = target;
            up      = character.transform.position;
            up.x   += jumpDistance;
            up.y    = target.y;
            CCMoveToAction moveForward = CCMoveToAction.GetSSAction(forward, speed);
            CCMoveToAction jump        = CCMoveToAction.GetSSAction(up, speed);
            sequence = new List <SSAction> {
                jump, moveForward
            };
        }

        moveCharacter = SequenceAction.GetSSAcition(1, 0, sequence);
        RunAction(character, moveCharacter, this);
    }
示例#13
0
    public void moveBoat(BoatController boat)
    {
        CCMoveToAction action = CCMoveToAction.GetSSAction(boat.getDestination(), boat.Speed);

        // Debug.Log(boat.getDestination());
        this.RunAction(boat.getGameobj(), action, this);
    }
示例#14
0
    public static CCMoveToAction getAction(float speedx)
    {
        CCMoveToAction action = CreateInstance <CCMoveToAction>();

        action.speedx = speedx;
        return(action);
    }
示例#15
0
    //人物对象移动
    public void GameObjectsMove(GameObjects GameObject, Vector3 Destination)
    {
        Complete = SSActionEventType.Started;
        //防止撞墙,定义一个中点坐标
        Vector3 CurrentPos = GameObject.GetPosition();
        Vector3 MiddlePos  = CurrentPos;

        if (Destination.y > CurrentPos.y)
        {
            MiddlePos.y = Destination.y;
        }
        else
        {
            MiddlePos.x = Destination.x;
        }
        //先移动到中间
        SSAction action1 = CCMoveToAction.getAction(MiddlePos, GameObject.GetMoveSpeed());
        //在移动到目的地
        SSAction action2 = CCMoveToAction.getAction(Destination, GameObject.GetMoveSpeed());
        //CCSequenceAction是SSAction的子类
        SSAction seqAction = CCSequenceAction.getAction(1, 0, new List <SSAction> {
            action1, action2
        });

        //这个类继承了SSActionManager,管理动作
        this.addAction(GameObject.GetGameobject(), seqAction, this);
    }
示例#16
0
    public void MoveBoat(BoatController boat)
    {
        Complete = SSActionEventType.Started;
        CCMoveToAction boatAction = CCMoveToAction.GetAction(boat.getDestination(), boat.getSpeed());

        this.addAction(boat.getGameobj(), boatAction, this);
        boat.ChangeState();
    }
示例#17
0
    public void MoveUFO(UFO ufo)
    {
        count++;
        Complete = SSActionEventType.Started;
        CCMoveToAction action = CCMoveToAction.getAction(ufo.speed);

        addAction(ufo.gameObject, action, this);
    }
示例#18
0
    public SSActionEventType Complete = SSActionEventType.Completed;    //事件的状态是否完成

    //船移动
    public void BoatMove(BoatController Boat)
    {
        Complete = SSActionEventType.Started;
        CCMoveToAction action = CCMoveToAction.getAction(Boat.GetDestination(), Boat.GetMoveSpeed());

        addAction(Boat.GetGameObject(), action, this); //见SSAcitonManager
        Boat.ChangeState();                            //改变船的状态
    }
示例#19
0
    public void MoveDisk(Disk disk)
    {
        ++count;
        Complete = SSActionEventType.Started;
        CCMoveToAction diskAction = CCMoveToAction.GetAction(disk.Speed);

        this.addAction(disk.gameObject, diskAction, this);
    }
    public void MoveDisk(Disk Disk)
    {
        count++;
        Complete = SSActionEventType.Started;
        CCMoveToAction action = CCMoveToAction.getAction(Disk.speed);

        addAction(Disk.gameObject, action, this); // SSActionManage is executed by system auto, not by user itself
    }
示例#21
0
    public void PlayDisk(Disk disk)
    {
        count++;
        Complete = SSActionEventType.Started;
        CCMoveToAction action = CCMoveToAction.getAction(disk.speed);

        addAction(disk.gameObject, action, this);
    }
    public void BoatMove(BoatController Boat)
    {
        Complete = SSActionEventType.started;
        CCMoveToAction action = CCMoveToAction.getAction(Boat.getDestination(), Boat.getMoveSpeed());

        addAction(Boat.getGameObject(), action, this);
        Boat.changeTFflag();
    }
示例#23
0
    public static CCMoveToAction getSSAction(Vector3 target, float speed)
    {
        CCMoveToAction action = ScriptableObject.CreateInstance <CCMoveToAction>();

        action.target = target;
        action.speed  = speed;
        return(action);
    }
示例#24
0
    public CCMoveToAction MoveToAction(GameObject obj, float speed)
    {
        CCMoveToAction action = CCMoveToAction.GetSSAction(speed);

        base.RunAction(obj, action, this);

        return(action);
    }
示例#25
0
    protected new void Update()
    {
        if (factory.used_ufos.Count > 0)
        {
            GameObject     disk         = factory.used_ufos[0].gameObject;
            float          x            = Random.Range(-10, 10);
            CCMoveToAction moveToAction = CCMoveToAction.GetSSAction(new Vector3(x, 12, 0), (Mathf.CeilToInt(FirstSceneController.times / 10) + 1) * Time.deltaTime);
            if (disk.transform.GetComponent <Renderer>().material.color == Color.red)
            {
                moveToAction = CCMoveToAction.GetSSAction(new Vector3(x, 12, 0), 5 * (Mathf.CeilToInt(FirstSceneController.times / 10) + 1) * Time.deltaTime);
            }
            else if (disk.transform.GetComponent <Renderer>().material.color == Color.green)
            {
                moveToAction = CCMoveToAction.GetSSAction(new Vector3(x, 12, 0), 4 * (Mathf.CeilToInt(FirstSceneController.times / 10) + 1) * Time.deltaTime);
            }
            else if (disk.transform.GetComponent <Renderer>().material.color == Color.blue)
            {
                moveToAction = CCMoveToAction.GetSSAction(new Vector3(x, 12, 0), 3 * (Mathf.CeilToInt(FirstSceneController.times / 10) + 1) * Time.deltaTime);
            }

            seq.Add(moveToAction);
            this.RunAction(disk, moveToAction, this);
            factory.used_ufos.RemoveAt(0);
        }
        if (Input.GetMouseButtonDown(0) && sceneController.flag == 0)
        {
            Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hitGameObject;
            if (Physics.Raycast(ray, out hitGameObject))
            {
                GameObject gameObject = hitGameObject.collider.gameObject;
                if (gameObject.tag == "ufo")
                {
                    foreach (var k in seq)
                    {
                        if (k.gameObject == gameObject)
                        {
                            k.transform.position = k.target;
                        }
                    }
                    if (gameObject.transform.GetComponent <Renderer>().material.color == Color.red)
                    {
                        userClickAction = UserClickAction.GetSSAction(3);
                    }
                    else if (gameObject.transform.GetComponent <Renderer>().material.color == Color.green)
                    {
                        userClickAction = UserClickAction.GetSSAction(2);
                    }
                    else if (gameObject.transform.GetComponent <Renderer>().material.color == Color.blue)
                    {
                        userClickAction = UserClickAction.GetSSAction(1);
                    }
                    this.RunAction(gameObject, userClickAction, this);
                }
            }
        }
        base.Update();
    }
示例#26
0
    public static CCMoveToAction getAction(int block, float speed, Vector3 position)
    {
        CCMoveToAction action = ScriptableObject.CreateInstance <CCMoveToAction>();

        action.target = position;
        action.speed  = speed;
        action.block  = block;
        return(action);
    }
示例#27
0
文件: Base.cs 项目: KeplerVK/Unity3d
    public static CCMoveToAction GetSSAtion(GameObject Object)
    {
        CCMoveToAction action = ScriptableObject.CreateInstance <CCMoveToAction> ();

        //action.target = target;
        action.gameObject = Object;
        action.transform  = Object.transform;
        return(action);
    }
    public float speed;             //移动的速度

    //获取一个移动动作的实例对象
    public static CCMoveToAction GetSSAction(Vector3 target, float speed)
    {
        CCMoveToAction action = ScriptableObject.CreateInstance <CCMoveToAction>();

        action.target = target;
        action.speed  = speed;
        Debug.Log(speed.ToString());
        return(action);
    }
示例#29
0
    public static CCMoveToAction GetSSAction(float speed, float g)
    {
        CCMoveToAction action = ScriptableObject.CreateInstance <CCMoveToAction>();

        action.speed  = speed;
        action.g      = g;
        action.speedd = 0;
        return(action);
    }
示例#30
0
    public static CCMoveToAction CreateSSAction(Vector3 _target, float _speed, bool _isCatching)
    {
        CCMoveToAction action = ScriptableObject.CreateInstance <CCMoveToAction>();

        action.target     = _target;
        action.speed      = _speed;
        action.isCatching = _isCatching;
        return(action);
    }