Update() public méthode

public Update ( ) : void
Résultat void
Exemple #1
0
    public void Update(float delta)
    {
        m_FishNum = 0;
        List <Fish> fishList = new List <Fish>(m_FishList.Values);

        for (int i = 0; i < fishList.Count; ++i)
        {
            Fish fish = fishList[i];
            if (!fish.Update(delta))
            {
                DestroyFish(fish, fish.Catched);
            }
            else
            {
                ++m_FishNum;
            }
        }
        time1 += Time.deltaTime;
        if (time1 >= time2 && m_FishNum > 0 && boo == 0)
        {
            GlobalAudioMgr.Instance.PlayOrdianryMusic(Audio.OrdianryMusic.m_qingdian);
            // time1 = 0f;
            boo = 1;
        }
        if (time1 >= time3 && m_FishNum > 0)
        {
            GlobalAudioMgr.Instance.PlayOrdianryMusic(Audio.OrdianryMusic.m_haohuai);
            boo   = 0;
            time1 = 0f;
        }
        UpdateBackupList(delta);
        //CheckFishPos();
    }
Exemple #2
0
    // Use this for initialization
    void Start()
    {
        for (int i = 0; i < numberInSwarm; i++)
        {
//			Debug.Log("i = " + i);
            newFish = new Fish(i);

            if (newFish == null)
            {
                Debug.Log("newfish null");
            }
            newFish.myGameObject.transform.position = Random.insideUnitSphere * 20;

            fishSwarm.Add(newFish);

            newFish.Update();
        }
    }
Exemple #3
0
        /// <summary>
        /// Allows the game to run logic such as updating the world,
        /// checking for collisions, gathering input, and playing audio.
        /// </summary>
        /// <param name="gameTime">Provides a snapshot of timing values.</param>
        protected override void Update(GameTime gameTime)
        {
            // Allows the game to exit
            if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
            {
                this.Exit();
            }
            foreach (Fish x in school)
            {
                x.Update(gameTime, graphics);
            }

            controls();

            // TODO: Add your update logic here
            f.Update(gameTime);

            base.Update(gameTime);
        }
Exemple #4
0
        /// <summary>
        ///     循环检测玩家状态.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnWork(object sender, DoWorkEventArgs e)
        {
            var status = Scanner.ReadInt16(Data.StatusPtr);

            while (true)
            {
                if (Worker.CancellationPending)
                {
                    e.Cancel = true;
                }
                try
                {
                    var nStatus = Scanner.ReadInt16(Data.StatusPtr);
                    if (nStatus != status)
                    {
                        StatusChange(nStatus);
                        status = nStatus;
                    }

                    var buffTablePtr = Scanner.ReadIntPtr(Data.ActorTable) + Data.UiStatusEffects;
                    BuffCheck(buffTablePtr);

                    WeatherCheck(Data.WeatherPtr);


                    if (Fish.State == FishingState.Casting)
                    {
                        Fish.Update();
                    }
                    if (Status.IsActive)
                    {
                        Status.Update();
                    }
                }
                catch (Exception)
                {
                    // ignored
                }

                Thread.Sleep(50);
            }
        }
Exemple #5
0
    public void Update(float delta)
    {
        m_FishNum = 0;
        List <Fish> fishList = new List <Fish>(m_FishList.Values);

        for (int i = 0; i < fishList.Count; ++i)
        {
            Fish fish = fishList[i];
            if (!fish.Update(delta))
            {
                DestroyFish(fish, fish.Catched);
            }
            else
            {
                ++m_FishNum;
            }
        }
        UpdateBackupList(delta);
        //CheckFishPos();
    }
Exemple #6
0
    // Update is called once per frame
    void Update()
    {
        toBeRemoved.Clear();

        if (fishSwarm == null || numberInSwarm < 1)
        {
            Start();
            Debug.Log("swarm is null");
            return;
        }
        for (int i = 0; i < numberInSwarm; i++)
        {
            Fish f = (Fish)fishSwarm[i];
            f.Update();

            if (f.myGameObject.transform.position.magnitude > 100)
            {
                f.myGameObject.transform.position = Vector3.zero;
            }
        }
    }
Exemple #7
0
    public void  LaunchFishByAsycScene(NetCmdPack pack)
    {
        NetCmdSyncFish cmdFish     = (NetCmdSyncFish)pack.cmd;
        GroupDataList  gdl         = FishResManager.Instance.GetFishGroup(cmdFish.GroupID);
        float          elapsedTime = Utility.TickSpan(pack.tick) + SceneRuntime.NetDelayTime;

        if (gdl.PathGroupData != null)
        {
            FishPathGroupData        pathgroup  = gdl.PathGroupData;
            PathLinearInterpolator[] interpList = PathManager.Instance.GetPathGroup(pathgroup.PathGroupIndex, SceneRuntime.Inversion);
            if (cmdFish.PathIdx >= interpList.Length)
            {
                LogMgr.Log("路径数量和服务器不一致,路径群:" + cmdFish.PathGroup + ", 索引:" + cmdFish.PathIdx);
            }
            {
                Fish fish = new Fish();
                fish.Init(cmdFish.FishID, pathgroup.FishIndex, pathgroup.FishScaling, cmdFish.FishTime, pathgroup.ActionSpeed, pathgroup.ActionUnite, pathgroup.Speed, interpList[cmdFish.PathIdx]);
#if UNITY_EDITOR
                fish.SetModelName("Fish_PathGroup_" + cmdFish.GroupID);
#endif
                if (fish.Update(elapsedTime))
                {
                    SetFish(fish);
                    fish.Controller.CheckCurrentEvent(cmdFish.IsActiveEvent);
                    fish.Controller.PathEvent.m_CurElapsedTime = cmdFish.ElapsedTime * 0.001f;
                    if (cmdFish.Package != 255)
                    {
                        fish.SetPackage(cmdFish.Package);
                    }
                    if (cmdFish.DelayType != (byte)FISH_DELAY_TYPE.DELAY_NONE)
                    {
                        float   scl;
                        float[] dur = new float[3];
                        Utility.ReductionToFloat(cmdFish.DelayScaling, cmdFish.DelayDuration1, cmdFish.DelayDuration2, cmdFish.DelayDuration3,
                                                 out scl, dur);
                        float time = cmdFish.DelayCurrentTime * 0.001f;
                        fish.Controller.TimeController.AddSkillTimeScaling(scl, dur, (FISH_DELAY_TYPE)cmdFish.DelayType, time);
                    }
                }
            }
        }
        else
        {
            float fInv      = SceneRuntime.Inversion ? -1.0f : 1.0f;
            int   pathIndex = cmdFish.PathGroup;
            int   gdIdx     = cmdFish.PathIdx >> 8;
            int   fishIdx   = cmdFish.PathIdx & 0xff;

            PathLinearInterpolator pi = PathManager.Instance.GetPath(pathIndex, SceneRuntime.Inversion);
            if (gdIdx >= gdl.GroupDataArray.Length)
            {
                LogMgr.Log("场景鱼同步,索引超出界限1:" + gdIdx);
                return;
            }
            GroupData gd = gdl.GroupDataArray[gdIdx];
            {
                {
                    Fish fish = new Fish();
                    fish.Init(cmdFish.FishID, gd.FishIndex, gd.FishScaling, cmdFish.FishTime, gd.ActionSpeed, gd.ActionUnite, gd.SpeedScaling, pi);
#if UNITY_EDITOR
                    fish.SetModelName("Fish_FishGroup_" + cmdFish.GroupID + "_Path_" + pathIndex);
#endif
                    if (fish.Update(elapsedTime))
                    {
                        if (fishIdx >= gd.PosList.Length)
                        {
                            LogMgr.Log("场景鱼同步,索引超出界限2:" + gdIdx);
                            return;
                        }
                        fish.SetOffset(new Vector3(0, fInv * gd.PosList[fishIdx].y, gd.PosList[fishIdx].z));
                        SetFish(fish);
                        if (cmdFish.Package != 255)
                        {
                            fish.SetPackage(cmdFish.Package);
                        }
                        fish.Controller.CheckCurrentEvent(cmdFish.IsActiveEvent);
                        fish.Controller.PathEvent.m_CurElapsedTime = cmdFish.ElapsedTime * 0.001f;
                        if (cmdFish.DelayType != (byte)FISH_DELAY_TYPE.DELAY_NONE)
                        {
                            float   scl;
                            float[] dur = new float[3];
                            Utility.ReductionToFloat(cmdFish.DelayScaling, cmdFish.DelayDuration1, cmdFish.DelayDuration2, cmdFish.DelayDuration3,
                                                     out scl, dur);
                            float time = cmdFish.DelayCurrentTime * 0.001f;
                            fish.Controller.TimeController.AddSkillTimeScaling(scl, dur, (FISH_DELAY_TYPE)cmdFish.DelayType, time);
                        }
                    }
                }
            }
        }
    }