Beispiel #1
0
 void Start()
 {
     bModel      = new BulletModel(startPosition);
     bView       = CreateBulletView(startPosition);
     disposables = new CompositeDisposable();
     Observable.EveryUpdate()
     .Subscribe(_ =>
     {
         bModel.UpdatePosition(1 * Time.deltaTime);
     })
     .AddTo(disposables);
     bModel.position
     .ObserveEveryValueChanged(position => position.Value)
     .Subscribe(posValue =>
     {
         bView.UpdatePosition(posValue);
     })
     .AddTo(disposables);
     bView.isCollided
     .ObserveEveryValueChanged(position => position.Value)
     .Subscribe(posValue =>
     {
         bModel.SendDeathNotice();
     })
     .AddTo(disposables);
     MessageBroker.Default
     .Receive <DeathNotice>()
     .Where(msg => msg.sender == bModel && msg.objectType == SpaceObjectType.bullet)
     .Subscribe(_ => {
         SelfDestruct();
     })
     .AddTo(disposables);
     MessageBroker.Default
     .Receive <GameOverNotice>()
     .Subscribe(msg =>
     {
         disposables.Dispose();
     })
     .AddTo(this);
 }