//新增:物理运动更新
    protected void FixedUpdate()
    {
        foreach (SSAction ac in waitingAdd)
        {
            actions[ac.GetInstanceID()] = ac;
        }
        waitingAdd.Clear();

        foreach (KeyValuePair <int, SSAction> kv in actions)
        {
            SSAction ac = kv.Value;
            if (ac.destroy)
            {
                waitingDelete.Add(ac.GetInstanceID());
            }
            else if (ac.enable)
            {
                ac.FixedUpdate();
            }
        }
        foreach (int key in waitingDelete)
        {
            SSAction ac = actions[key];
            actions.Remove(key);
            DestroyObject(ac);
        }
        waitingDelete.Clear();
    }
示例#2
0
    protected void Update()
    {
        foreach (SSAction action in waitingAdd)
        {
            actions[action.GetInstanceID()] = action;
        }
        waitingAdd.Clear();

        foreach (KeyValuePair <int, SSAction> i in actions)
        {
            SSAction value = i.Value;
            if (value.destroy)
            {
                waitingDelete.Add(value.GetInstanceID());
            }
            else if (value.enable && flag)
            {
                value.Update();
            }
            else if (value.enable && flag == false)
            {
                value.FixedUpdate();
            }
        }

        foreach (int i in waitingDelete)
        {
            SSAction ac = actions[i];
            actions.Remove(i);
            DestroyObject(ac);
        }
    }
示例#3
0
    private List <int> waitingDelete           = new List <int>();                  //等待删除动作的key的列表

    protected void Update()
    {
        //获取动作实例将等待执行的动作加入字典并清空待执行列表
        foreach (SSAction ac in waitingAdd)
        {
            actions[ac.GetInstanceID()] = ac;
        }
        waitingAdd.Clear();

        //对于字典中每一个pair,看是执行还是删除
        foreach (KeyValuePair <int, SSAction> kv in actions)
        {
            SSAction ac = kv.Value;
            if (ac.destroy)
            {
                waitingDelete.Add(ac.GetInstanceID());
            }
            else if (ac.enable)
            {
                ac.Update();
                ac.FixedUpdate();
            }
        }

        //删除所有已完成的动作并清空待删除列表
        foreach (int key in waitingDelete)
        {
            SSAction ac = actions[key];
            actions.Remove(key);
            Object.Destroy(ac);
        }
        waitingDelete.Clear();
    }
示例#4
0
    private List <int> waitingDelete           = new List <int>();      // actions need to be deleted

    protected void Update()
    {
        foreach (SSAction action in waitingAdd)
        {
            actions[action.GetInstanceID()] = action;
        }
        waitingAdd.Clear();

        foreach (KeyValuePair <int, SSAction> kv in actions)
        {
            SSAction action = kv.Value;
            if (action.destroy)         // delete this action
            {
                waitingDelete.Add(action.GetInstanceID());
            }
            else if (action.enable)     // run this action
            {
                action.Update();
                action.FixedUpdate();
            }
        }

        foreach (int key in waitingDelete)
        {
            SSAction action = actions[key];
            actions.Remove(key);
            Destroy(action);
        }
        waitingDelete.Clear();
    }
示例#5
0
    // Update is called once per frame
    protected void FixedUpdate()
    {
        //把等待队列里所有的动作注册到动作管理器里
        foreach (SSAction ac in waitingAdd)
        {
            actions[ac.GetInstanceID()] = ac;
        }
        waitingAdd.Clear();

        //管理所有的动作,如果动作被标志为删除,则把它加入删除队列,被标志为激活,则调用其对应的Update函数
        foreach (KeyValuePair <int, SSAction> kv in actions)
        {
            SSAction ac = kv.Value;
            if (ac.destroy)
            {
                waitingDelete.Add(ac.GetInstanceID());
            }
            else if (ac.enable)
            {
                ac.FixedUpdate();
            }
        }

        //把删除队列里所有的动作删除
        foreach (int key in waitingDelete)
        {
            SSAction ac = actions[key];
            actions.Remove(key);
            DestroyObject(ac);
        }
        waitingDelete.Clear();
    }
示例#6
0
    public void FixedUpdate()
    {
        if (roundCtrl.status == "暂停")         //停止更新action
        {
            return;
        }
        foreach (SSAction ac in waitingAdd)
        {
            actions[ac.GetInstanceID()] = ac;
        }
        waitingAdd.Clear();

        foreach (KeyValuePair <int, SSAction> kv in actions)
        {
            SSAction ac = kv.Value;
            if (ac.gameobject.active == false || ac.destroy)            //gameobject的active是false就不更新action了
            {
                waitingDelete.Add(ac.GetInstanceID());
            }
            else if (ac.enable)
            {
                ac.FixedUpdate();
            }
        }

        foreach (int key in waitingDelete)
        {
            SSAction ac = actions[key]; actions.Remove(key); DestroyObject(ac);
        }
        waitingDelete.Clear();
    }
示例#7
0
    protected void Update()
    {
        foreach (SSAction action in actionToRun)
        {
            actionsRunning[action.GetInstanceID()] = action;
        }
        actionToRun.Clear();

        foreach (KeyValuePair <int, SSAction> actionKV in actionsRunning)
        {
            SSAction action = actionKV.Value;
            if (action.enable)
            {
                action.Update();
                action.FixedUpdate();
            }
            else
            {
                actionToDel.Add(action.GetInstanceID());
            }
        }

        foreach (int key in actionToDel)
        {
            SSAction action = actionsRunning[key];
            actionsRunning.Remove(key);
            Object.Destroy(action);
        }
        actionToDel.Clear();
    }
示例#8
0
    protected void FixedUpdate()
    {
        foreach (SSAction ac in watingAddAction)
        {
            dictionary[ac.GetInstanceID()] = ac;
        }
        watingAddAction.Clear();


        foreach (KeyValuePair <int, SSAction> dic in dictionary)
        {
            SSAction ac = dic.Value;
            if (ac.destroy)
            {
                watingDelete.Add(ac.GetInstanceID());
            }
            else if (ac.enable)
            {
                ac.FixedUpdate();
            }
        }


        foreach (int id in watingDelete)
        {
            SSAction ac = dictionary[id];
            dictionary.Remove(id);
            DestroyObject(ac);
        }
        watingDelete.Clear();
    }
    protected void FixedUpdate()
    {
        controller = Director.getInstance().currentSceneController as Controller;

        foreach (SSAction action in waitingForAdd)
        {
            actions[action.GetInstanceID()] = action;
        }

        waitingForAdd.Clear();

        foreach (KeyValuePair <int, SSAction> pair in actions)
        {
            SSAction action = pair.Value;
            if (action.destroy)
            {
                waitingForDelete.Add(action.GetInstanceID());
            }
            else if (action.enable)
            {
                action.FixedUpdate();
            }
        }

        foreach (int key in waitingForDelete)
        {
            SSAction action = actions[key];
            actions.Remove(key);
            Destroy(action);
        }

        waitingForDelete.Clear();
    }
示例#10
0
    protected void FixedUpdate()
    {
        if (sceneController.moveMode == FirstSceneController.MoveMode.PhysicsMove)
        {
            if (sceneController.isPaused == false && sceneController.isStarted == true)
            {
                foreach (SSAction ac in waitingAdd)
                {
                    actions[ac.GetInstanceID()] = ac;
                }

                waitingAdd.Clear();



                foreach (KeyValuePair <int, SSAction> kv in actions)
                {
                    SSAction ac = kv.Value;

                    if (ac.destroy)
                    {
                        waitingDelete.Add(ac.GetInstanceID());
                    }
                    else if (ac.enable)
                    {
                        ac.FixedUpdate();
                    }
                }



                foreach (int key in waitingDelete)
                {
                    SSAction ac = actions[key];

                    actions.Remove(key);

                    DestroyObject(ac);

                    sceneController.diskComp++;
                }

                waitingDelete.Clear();
            }
        }
    }
示例#11
0
    protected void FixedUpdate()
    {
        if (sceneController.currentMoveMode == FirstController.MoveMode.PhysicsMove)
        {
            if (sceneController.isPaused == false && sceneController.isStarted == true)
            {
                foreach (SSAction act in waitAdd)
                {
                    actions [act.GetInstanceID()] = act;
                }
                waitAdd.Clear();

                foreach (KeyValuePair <int, SSAction> kv in actions)
                {
                    SSAction act = kv.Value;
                    if (act.destory)
                    {
                        waitDel.Add(act.GetInstanceID());
                    }
                    else if (act.enable)
                    {
                        act.FixedUpdate();
                    }
                }

                foreach (int _key in waitDel)
                {
                    SSAction act = actions [_key];
                    actions.Remove(_key);
                    DestroyObject(act);
                    sceneController.diskComp++;
                }
                waitDel.Clear();
            }
        }
    }