private void FrameTick(object sender, ElapsedEventArgs e) { lock (locker) { if (paused) { return; } Time.Update(); var activeObjects = map.GetGameObjects(GameBasicCamera); activeObjects.ForEach(x => x.Update()); Physics.StepWithDelete(0.01666667F, 3, 6); map.UpdateMap(GameBasicCamera, GameBasicCamera.Size); GameBasicCamera.Update(); manager.Update(); Tick?.Invoke(activeObjects, GameBasicCamera); Controls.ClearOneFrameValues(); if (!win) { return; } Pause(); map.RemoveObject(ship); ship.DeletePhysics(); GameModelChanged?.Invoke(data.MainModel); } }
private void StartBattle(MapEnemy obj) { Pause(); var position = new Vector2D(player.Position.X, player.Position.Y); map.RemoveObject(player); var data = new BattleGameModelData { MapSize = new Size(20000, 20000), Player = player, Controls = Controls, Enemy = obj, Time = Time, CameraSize = GameBasicCamera.Size, MainModel = this }; var model = new BattleGameModel(data); model.GameModelChanged += m => { obj.Destoy(); player.Position = position; map.AddGameObject(player); Controls.MouseHandler.ChangeCamera(GameBasicCamera); Run(); }; GameModelChanged?.Invoke(model); model.Run(); }