public CollisionComponent(IGameObject parentObject, LanderGame parentGame, double threshold, Action <IGameObject> onCollision, params Type[] collidesWith) { if (parentObject == null) { throw new ArgumentNullException(nameof(parentObject)); } if (parentGame == null) { throw new ArgumentNullException(nameof(parentGame)); } if (onCollision == null) { throw new ArgumentNullException(nameof(onCollision)); } if (!collidesWith.Any()) { throw new ArgumentException(); } _parentObject = parentObject; _parentGame = parentGame; _threshold = threshold; _onCollision = onCollision; _collidesWith = collidesWith; }
public LanderGamePresenter(LanderGame landerGame, OptionsViewModel options) { _landerGame = landerGame; _options = options; landerGame.GameObjectAdded += LanderGame_GameObjectAdded; landerGame.GameObjectDestroyed += LanderGame_GameObjectDestroyed; }
private void Awake() { if (instance == null) { instance = this; } }
public HeadUpDisplayViewModel(LanderGame game) { if (game == null) { throw new ArgumentNullException(); } _game = game; CompositionTarget.Rendering += (sender, args) => CompositionTargetOnRendering(); }
public GameViewModel() { _dispatcher = Dispatcher.CurrentDispatcher; _landerGame = new LanderGame(); _presenter = new LanderGamePresenter(_landerGame, Options); _devInfo = new DevInfoViewModel(_landerGame); RenderWidth = 800; RenderHeight = 600; _landerGame.ResetGame(); IsPaused = true; // Show menu initially // Terminate game loop properly Application.Current.Exit += (sender, args) => { _runGameLoop = false; _renderGate.Set(); // Wait for render thread to finish. _renderThreadEndEvent.Wait(); }; }
public DevInfoViewModel(LanderGame landerGame) { _landerGame = landerGame; }