|
|
@@ -132,3 +132,137 @@ if ($this.moving) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+Ninjas are presented with a completely blank scene and will have to build an entire
|
|
|
+activity from the ground up using everything that they’ve learned in Yellow Belt.
|
|
|
+*/
|
|
|
+
|
|
|
+//*********************Scene Object - Initialize When Scene Starts Event***********//
|
|
|
+if ($this.scene.state() == "PLAY") {
|
|
|
+ var nrock = rocks.clone();
|
|
|
+ nrock.x(random(800));
|
|
|
+ nrock.y(random(600));
|
|
|
+}
|
|
|
+
|
|
|
+//**************rock Object - Initialize When Scene Starts Event******************//
|
|
|
+if ($this.scene.state() == "PLAY") {
|
|
|
+ $this.speedX(random(50,-50));
|
|
|
+ $this.speedY(random(50,-50));
|
|
|
+ $this.rot = random(30,-30);
|
|
|
+}
|
|
|
+
|
|
|
+//******************rock Object - Update Every Frame Event*************************//
|
|
|
+moveX($this);
|
|
|
+moveY($this);
|
|
|
+$this.spin($this.rot);
|
|
|
+// keep rocks in the scene
|
|
|
+if($this.y() > 600) {
|
|
|
+ $this.y(0);
|
|
|
+}
|
|
|
+if($this.y() < 0) {
|
|
|
+ $this.y(600);
|
|
|
+}
|
|
|
+if($this.x() > 800) {
|
|
|
+ $this.x(0);
|
|
|
+}
|
|
|
+if($this.x() < 0) {
|
|
|
+ $this.x(800);
|
|
|
+}
|
|
|
+
|
|
|
+// collision check
|
|
|
+//find the bullet on the scene
|
|
|
+var bullet = $this.scene.projectile;
|
|
|
+
|
|
|
+if(bullet && $this.isTouching(bullet)) {
|
|
|
+ //instead of making the variable, we add to the score directly
|
|
|
+ lblScore.text(parseInt(lblScore.text() + 10));
|
|
|
+
|
|
|
+ $this.scaleX($this.scaleX()/2); //start to reduce the rock by 1/2
|
|
|
+ $this.scaleY($this.scaleY()/2);
|
|
|
+ $this.offsetX($this.offsetX()/2);
|
|
|
+ $this.offsetY($this.offsetY()/2);
|
|
|
+
|
|
|
+ if($this.scaleX() >= 0.125) {
|
|
|
+ var nrock = $this.clone(); //split the rock as long as as it's bigger than 0.125
|
|
|
+ } else {
|
|
|
+ $this.remove();
|
|
|
+ }
|
|
|
+
|
|
|
+ $this.scene.projectile = null; //remove bullet and reseet value of scene projectile
|
|
|
+ bullet.remove();
|
|
|
+}
|
|
|
+
|
|
|
+//*******************rocket Group - Update Every Frame Event***********************//
|
|
|
+var leftPressed = isKeyPressed(Keys.leftArrow);
|
|
|
+var rightPressed = isKeyPressed(Keys.rightArrow);
|
|
|
+var upPressed = isKeyPressed(Keys.upArrow);
|
|
|
+
|
|
|
+if(upPressed) { // if pressed, move rocket forward
|
|
|
+ $this.moveForwardByRotation();
|
|
|
+}
|
|
|
+
|
|
|
+if(leftPressed) { // if pressed, rotate to the left
|
|
|
+ $this.spin(-40);
|
|
|
+}
|
|
|
+
|
|
|
+if(rightPressed) {
|
|
|
+ $this.spin(40);
|
|
|
+}
|
|
|
+
|
|
|
+// keep rocket in the scene
|
|
|
+if ($this.y() > 600) {
|
|
|
+ $this.y(0);
|
|
|
+}
|
|
|
+if ($this.y() < 0) {
|
|
|
+ $this.y(600);
|
|
|
+}
|
|
|
+if ($this.x()>800) {
|
|
|
+ $this.x(0);
|
|
|
+}
|
|
|
+if( $this.x()<0) {
|
|
|
+ $this.x(800);
|
|
|
+}
|
|
|
+// projectile functionality - rocket group talks to bullet, creates a 'moving' boolean
|
|
|
+//bullet is listening for moving to be true
|
|
|
+var spacePresssed = isKeyPressed(Keys.space)
|
|
|
+var bullet = $this.findName("bullet"); //find the active bullet on the scene
|
|
|
+
|
|
|
+if(spacePressed) {
|
|
|
+ if(!$this.scene.projectile) {
|
|
|
+ var b = bullet.clone(true, true, $this.scene); //cloning the bullet from bullet
|
|
|
+
|
|
|
+ b.x(bullet.getStagePos().x); //getting the x,y and rotation in the scene
|
|
|
+ b.y(bullet.getStagePos().y);
|
|
|
+ b.rotation($this.rotation());
|
|
|
+ b.moving = true; //set boolean to true so bullet will excecute the code when moving is true
|
|
|
+ b.z(1000); //ensure it's always on top of scene
|
|
|
+
|
|
|
+ $this.scene.projectile = b;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+//*****************spaceShip Object - Update Every Frame Event********************//
|
|
|
+// animation code
|
|
|
+var upPressed = isKeyPressed(Keys.upArrow);
|
|
|
+if (upPressed) {
|
|
|
+ $this.animation("thrust");
|
|
|
+ $this.incrementAnimation();
|
|
|
+
|
|
|
+} else {
|
|
|
+ $this.animation("default");
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+//******************bullet Object - Update Every Frame Event**********************//
|
|
|
+//the moving boolean created from rocket group and so it knows to shoot when the
|
|
|
+//space bar is pressed
|
|
|
+if ($this.moving) {
|
|
|
+ $this.moveForwardByRotation();
|
|
|
+ // condition here will prevent overloading the screen with bullets,
|
|
|
+ // it checks for current bullets on the screen
|
|
|
+ if ($this.y() > 600 || $this.y() < 0 || $this.x() < 0 || $this.x() > 800) {
|
|
|
+ $this.scene.projectile = null;
|
|
|
+ $this.remove(); // rock is removed when collision occurs
|
|
|
+ }
|
|
|
+}
|
|
|
+
|