Ejemplo n.º 1
0
    public override void InitializeLevelManager(LevelManagerViewModel levelManager)
    {
        levelManager.GameOver = false;

        //this can be disabled andd restarted when game is over/restarted
        //generate asteroid every x seconds
        Observable.Interval(TimeSpan.FromMilliseconds(1000)).Subscribe(x =>
        {
            var asteroid = AsteroidController.CreateAsteroid();
            asteroid.Destroy.Subscribe(_ => { levelManager.Asteroids.Remove(asteroid); });
            levelManager.Asteroids.Add(asteroid);
        });

        //we should not chage the gameover property from outside of the level manager !
        //we should make a game over computed property which will determine if the game is over
        levelManager.PlayerProperty
        .Where(player => player != null)
        .Subscribe(player => player.IsAliveProperty.Where(isAlive => !isAlive).Subscribe(_ => { levelManager.GameOver = true; }))
        .DisposeWith(levelManager);
    }
Ejemplo n.º 2
0
 /// <summary>
 /// This is a single image sprite that rotates
 /// and move at a constant speed in a fixed direction
 /// </summary>
 private void SetupAsteroid()
 {
     asteroidController.LoadImages(Content);
     asteroidController.CreateAsteroid();
 }