//****************** Scene Object - Initialize When Scene Starts Event*********// $this.resetShuriken = function () { // deactivate and hide the shuriken shuriken.active = false; shuriken.visible(false); }; $this.generateCloud = function() { // clone the cloud object var cloudClone = cloud.clone(); // position it off the screen // with a random x cloudClone.x(random(100, 700)); cloudClone.y(0); }; $this.throwShuriken = function() { // move the shuriken to the ninja shuriken.x(ninja.x()); shuriken.y(ninja.y()); // activate it and make it visible shuriken.active = true; shuriken.visible(true); }; if ($this.scene.state() == "PLAY") { // set up score varible $this.score = 0; // initialize the shuriken $this.resetShuriken(); // every 3 seconds, generate new cloud createTimer(3000, function() { $this.generateCloud(); }); } //********************* ninja Object - Update Every Frame Event*******************// $this.incrementAnimation(); // move the ninja left if (isKeyPressed(Keys.leftArrow)) { $this.moveX(-100); } // move the ninja right if (isKeyPressed(Keys.rightArrow)) { $this.moveX(100); } // if the spacebar is pressed // and if the shuriken is not active if (isKeyPressed(Keys.space) && !shuriken.active) { $this.scene.throwShuriken(); } //*********************shuriken Object - Update Every Frame Event*****************// // move the shuriken if it's active if ($this.active) { $this.moveY(); } // if it flies off the screen // reset it if ($this.y() <= 0) { $this.scene.resetShuriken(); } //**********************cloud Object - Update Every Frame Event ******************//\ // always move the cloud $this.moveY(); // remove the cloud if it reaches the top of the screen if ($this.y() < 0) { // increase the score after every cleared cloud $this.scene.score += 10; scoreLabel.text($this.scene.score); $this.remove(); } // end game if the cloud reaches the bottom of the screen if (this.y() >= 500) { $this.scene.stopCode(); } // if the cloud touches an active shuriken if (shuriken.active && $this.isTouching(shuriken)) { // push cloud up $this.y($this.y() - 200); // reset the shuriken $this.scene.resetShuriken(); }