Files
junisaber/src/components/gameover.js
2018-10-10 02:03:59 +02:00

40 lines
1.2 KiB
JavaScript

AFRAME.registerComponent('gameover', {
schema: {
start: {default: false},
reset: {default: false}
},
init: function () {
this.beatContainer = document.getElementById('beatContainer');
},
update: function (oldData) {
var data = this.data;
if (data.start){
console.log('starting slow down...');
this.el.sceneEl.setAttribute('stage-colors', 'red');
this.countDown = 1;
this.lastTime = performance.now();
}
if (data.reset && data.reset !== oldData.reset){
this.resetStage();
}
},
tick: function (time, delta) {
if (!this.data.start) return;
if (this.countDown >= 0){
this.el.sceneEl.emit('slowdown', {progress: this.countDown});
//this.beatContainer.object3D.position.z = -Math.pow(1 - this.countDown, 2) * 1.5;
this.countDown -= delta / 1000;
this.el.sceneEl.systems.beat.speed = this.countDown;
}
else {
this.data.start = false;
setTimeout(()=>{ this.el.sceneEl.emit('pausegame'); }, 1000);
}
},
resetStage: function () {
this.data.start = false;
this.beatContainer.object3D.position.z = 0;
this.el.sceneEl.systems.beat.speed = 1.0;
this.el.sceneEl.setAttribute('stage-colors', 'blue');
}
});