コード例 #1
0
ファイル: Workspace.cs プロジェクト: HenningAx/KlaxGameEngine
        private void OnPlayGame(object argument)
        {
            IsInPlayMode = true;
            m_prePlayModeLevelReference = OpenedLevelAsset;

            UndoRedoModel.IsRecording = false;
            UndoRedoModel.Purge(null);

            CViewportViewModel viewport = GetTool <CViewportViewModel>();

            viewport.IsVisible = true;
            viewport.IsActive  = true;
            viewport.LockMouseCursor();

            CEngine.Instance.Dispatch(EEngineUpdatePriority.BeginFrame, () =>
            {
                CWorld world = CEngine.Instance.CurrentWorld;

                m_prePlayModeLevel = new CLevelAsset(world.LoadedLevel, "EditorTempLevel");
                world.StartPlayMode();

                Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Normal, (Action)(() =>
                {
                }));
            });
        }
コード例 #2
0
ファイル: Workspace.cs プロジェクト: HenningAx/KlaxGameEngine
        private void InitCommands()
        {
            NewLevelCommand    = new CRelayCommand(OnNewLevel);
            SaveLevelCommand   = new CRelayCommand(OnSaveLevel, obj => OpenedLevelAsset != null);
            SaveLevelAsCommand = new CRelayCommand(OnSaveLevelAs);
            CloseCommand       = new CRelayCommand(OnClose);

            SpawnEmptyEntity = new CRelayCommand(OnSpawnEmptyEntity);
            SpawnCubeEntity  = new CRelayCommand(OnSpawnCubeEntity);

            UndoCommand = new CRelayCommand((arg) => { UndoRedoModel.Undo(); }, (arg) => { return(UndoRedoModel.CanUndo); });
            RedoCommand = new CRelayCommand((arg) => { UndoRedoModel.Redo(); }, (arg) => { return(UndoRedoModel.CanRedo); });

            PlayGameCommand = new CRelayCommand(OnPlayGame, CanPlayGame);
            StopGameCommand = new CRelayCommand(OnStopGame, CanStopGame);
        }