A reference implementation of the observable spec in Typescript.
Install from bower
bower install observable.ts
Then add a script link to your page
<head>
...
<script src="bower_components/observable.ts/lib/observable.min.js"></script>
</head>
Define a game trigger object with enter
and leave
observables.
/// <reference path="bower_components/observable.ts/lib/observable.d.ts"/>
interface ITrigger {
enter: obs.Observable;
leave: obs.Observable;
doEnter(obj:IPlayer):void;
doLeave(obj:IPlayer):void;
destroy():void;
}
interface IPlayer {
name: string;
health: number;
}
var player:IPlayer = {
name: 'MorTon',
health: 100
};
var trigger:ITrigger = {
enter: new obs.Observable(),
leave: new obs.Observable(),
doEnter: (obj:IPlayer) => trigger.enter.next(obj),
doLeave: (obj:IPlayer) => trigger.leave.next(obj),
destroy: () => {
trigger.enter.return();
trigger.leave.return();
}
};
trigger.enter.subscribe({
next: (value:IPlayer) => {
var damage = 50;
value.health -= damage;
console.log(value.name + ' entered the trigger and took ' + damage + ' damage!');
}
});
trigger.leave.subscribe({
next: (value:IPlayer) => {
console.log(value.name + ' exited the trigger with ' + value.health + ' health remaining.');
}
});
trigger.doEnter(player);
trigger.doLeave(player);
trigger.destroy();
Outputs:
MorTon entered the trigger and took 50 damage!
MorTon exited the trigger with 50 health remaining.
The observable.ts test suite is run against a number of browsers to ensure it's compatible.
To the extent possible under law,
Justin DuJardin
has waived all copyright and related or neighboring rights to
observable.ts.
This work is published from:
United States.