Esempio n. 1
0
 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);
     }
 }
Esempio n. 2
0
        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();
        }