26 lines
670 B
JavaScript
Executable file
26 lines
670 B
JavaScript
Executable file
var SDL = module.exports = require('./build/Release/nodesdl.node');
|
|
|
|
// Easy event emitter based event loop. Started automatically when the first
|
|
// listener is added.
|
|
var events;
|
|
Object.defineProperty(SDL, 'events', {
|
|
get: function () {
|
|
if (events) return events;
|
|
events = new (require('events').EventEmitter);
|
|
var now = Date.now();
|
|
setInterval(function () {
|
|
var after = Date.now();
|
|
var delta = after - now;
|
|
now = after;
|
|
var data;
|
|
while (data = SDL.pollEvent()) {
|
|
events.emit('event', data);
|
|
events.emit(data.type, data);
|
|
}
|
|
events.emit('tick', delta);
|
|
}, 16);
|
|
return events;
|
|
}
|
|
});
|
|
|