diff --git a/ff0fsum4zx.js b/ff0fsum4zx.js index 87cac38..565a788 100644 --- a/ff0fsum4zx.js +++ b/ff0fsum4zx.js @@ -41,13 +41,11 @@ this.playerRotation = { y : 0 }; -R3.CustomCode.TIME_LIMIT = 1.5 * 60; +R3.CustomCode.TIME_LIMIT = 1.5 * 10; this.balls = []; -this.activeBall = this.football.instance; - -this.canKick = false; +this.canKick = true; this.kick = false; @@ -79,6 +77,8 @@ this.secondCounter = 0; this.ballY = this.football.instance.geometry.boundingSphere.radius / 2; +this.activeBall = null; + if (this.debug) { this.arrowHelper = new THREE.ArrowHelper( new THREE.Vector3(0,0,-1), @@ -88,6 +88,22 @@ if (this.debug) { this.arScene.instance.add(this.arrowHelper); } +R3.CustomCode.prototype.createActiveBall = function() { + + this.activeBall = new THREE.Mesh( + this.ballGeometry.instance, + [ + this.materialWhite.instance, + this.materialBlack.instance + ] + ); + + this.activeBall.scale.copy(this.football.instance.scale); + this.activeBall.position.copy(this.football.instance.position); + + this.football.parentScene.instance.add(this.activeBall); +}; + R3.CustomCode.prototype.render = function(delta) { this.totalTime -= delta; @@ -351,19 +367,7 @@ R3.CustomCode.prototype.move = function(data) { if (this.canKick && this.activeBall === null) { - - this.activeBall = new THREE.Mesh( - this.ballGeometry.instance, - [ - this.materialWhite.instance, - this.materialBlack.instance - ] - ); - - this.activeBall.scale.copy(this.football.instance.scale); - this.activeBall.position.y = this.ballY; - - this.football.parentScene.instance.add(this.activeBall); + this.createActiveBall(); } this.footballPlayer.instance.matrix = new THREE.Matrix4(); @@ -480,6 +484,16 @@ R3.Event.Subscribe( R3.Event.GAME_START, function() { + this.canKick = true; + + this.kick = false; + + this.startTime = null; + + this.kickDuration = 0; + + this.kickDistance = 0; + /** * Reset football player * @type {number} @@ -492,7 +506,6 @@ R3.Event.Subscribe( this.footballPlayer.instance.position.y = this.playerY; this.footballPlayer.instance.position.z = this.football.instance.geometry.boundingSphere.radius; - /** * Reset football * @type {number} @@ -523,7 +536,6 @@ R3.Event.Subscribe( function(ball) { this.football.parentScene.instance.remove(ball.mesh); - ball.mesh.material = null; ball.mesh.geometry = null; delete ball.mesh; @@ -534,6 +546,12 @@ R3.Event.Subscribe( this.balls = []; + if (this.activeBall) { + this.football.parentScene.instance.remove(this.activeBall); + this.activeBall.material = null; + this.activeBall.geometry = null; + } + R3.Event.Emit( R3.Event.PLAY_AUDIO, { @@ -541,6 +559,8 @@ R3.Event.Subscribe( } ); + this.createActiveBall(); + this.mouseMove.entityLoaded = this; this.touchMove.entityLoaded = this; this.beforeRender.entityLoaded = this; @@ -551,6 +571,7 @@ R3.Event.Subscribe( this.footballPlayer.instance.position.y = this.playerY; this.footballPlayer.instance.position.z = this.football.instance.geometry.boundingSphere.radius; this.football.instance.position.y = this.ballY; +this.football.instance.visible = false; R3.Event.Emit(R3.Event.GAME_LOADED);