|
|
@@ -0,0 +1,125 @@
|
|
|
+/**
|
|
|
+ Decompose Robot Builder
|
|
|
+* Make robot parts draggable
|
|
|
+* Robot parts snap in correct spots
|
|
|
+* Robot parts bounce back when incorrect
|
|
|
+* findDistance() function will require teaching
|
|
|
+* Review of .x() and .y() and how they work
|
|
|
+*/
|
|
|
+
|
|
|
+//All parts require $this.draggable(true); at Initialize When Scene Starts
|
|
|
+
|
|
|
+//*************body Object - Mouse Button Up Event********************//
|
|
|
+//find distance between body part and bodySpace
|
|
|
+//store it in variable called distance
|
|
|
+var distance = $this.findDistance(bodySpace);
|
|
|
+if (distance < 20) { //if it's dragged close enough to bodySpace
|
|
|
+ //snap it to x and y of bodySpace
|
|
|
+ $this.x(bodySpace.x());
|
|
|
+ $this.y(bodySpace.y());
|
|
|
+ //make it no longer draggable
|
|
|
+ $this.draggable(false); //Ninja Supplies
|
|
|
+} else { //was dragged to the wrong spot
|
|
|
+ //snap it back to where it started
|
|
|
+ //Hungry Ninja code
|
|
|
+ $this.x(616);
|
|
|
+ $this.y(42);
|
|
|
+}
|
|
|
+
|
|
|
+//***********arm1 Object - Mouse Button Up Event**********************//
|
|
|
+//find distance between arm1 part and arm1Space
|
|
|
+//store it in variable called distance
|
|
|
+var distance = $this.findDistance(arm1Space);
|
|
|
+if (distance < 20) { //if it's dragged close enough to arm1Space
|
|
|
+ //snap it to x and y of arm1Space
|
|
|
+ $this.x(arm1Space.x());
|
|
|
+ $this.y(arm1Space.y());
|
|
|
+ //make it no longer draggable
|
|
|
+ $this.draggable(false); //Ninja Supplies
|
|
|
+} else { //was dragged to the wrong spot
|
|
|
+ //snap it back to where it started
|
|
|
+ //Hungry Ninja code
|
|
|
+ $this.x(634);
|
|
|
+ $this.y(244);
|
|
|
+}
|
|
|
+
|
|
|
+//*************arm2 Object - Mouse Button Up Event********************//
|
|
|
+//find distance between arm2 part and arm2Space
|
|
|
+//store it in variable called distance
|
|
|
+var distance = $this.findDistance(arm2Space);
|
|
|
+if (distance < 20) { //if it's dragged close enough to arm2Space
|
|
|
+ //snap it to x and y of arm2Space
|
|
|
+ $this.x(arm2Space.x());
|
|
|
+ $this.y(arm2Space.y());
|
|
|
+ //make it no longer draggable
|
|
|
+ $this.draggable(false); //Ninja Supplies
|
|
|
+} else { //was dragged to the wrong spot
|
|
|
+ //snap it back to where it started
|
|
|
+ //Hungry Ninja code
|
|
|
+ $this.x(44);
|
|
|
+ $this.y(242);
|
|
|
+}
|
|
|
+
|
|
|
+//*************head Object - Mouse Button Up Event********************//
|
|
|
+//find distance between head part and headSpace
|
|
|
+//store it in variable called distance
|
|
|
+var distance = $this.findDistance(headSpace);
|
|
|
+if (distance < 20) { //if it's dragged close enough to headSpace
|
|
|
+ //snap it to x and y of headSpace
|
|
|
+ $this.x(headSpace.x());
|
|
|
+ $this.y(headSpace.y());
|
|
|
+ //make it no longer draggable
|
|
|
+ $this.draggable(false); //Ninja Supplies
|
|
|
+} else { //was dragged to the wrong spot
|
|
|
+ //snap it back to where it started
|
|
|
+ //Hungry Ninja code
|
|
|
+ $this.x(512);
|
|
|
+ $this.y(408);
|
|
|
+}
|
|
|
+
|
|
|
+//*************leg1 Object - Mouse Button Up Event**********************//
|
|
|
+//find distance between leg1 part and leg1Space
|
|
|
+//store it in variable called distance
|
|
|
+var distance = $this.findDistance(leg1Space);
|
|
|
+if (distance < 20) { //if it's dragged close enough to leg1Space
|
|
|
+ //snap it to x and y of leg1Space
|
|
|
+ $this.x(leg1Space.x());
|
|
|
+ $this.y(leg1Space.y());
|
|
|
+ //make it no longer draggable
|
|
|
+ $this.draggable(false); //Ninja Supplies
|
|
|
+} else { //was dragged to the wrong spot
|
|
|
+ //snap it back to where it started
|
|
|
+ //Hungry Ninja code
|
|
|
+ $this.x(58);
|
|
|
+ $this.y(66);
|
|
|
+}
|
|
|
+
|
|
|
+//****************leg2 Object - Mouse Button Up Event*******************//
|
|
|
+//find distance between leg2 part and leg2Space
|
|
|
+//store it in variable called distance
|
|
|
+var distance = $this.findDistance(leg2Space);
|
|
|
+if (distance < 20) { //if it's dragged close enough to leg2Space
|
|
|
+ //snap it to x and y of leg2Space
|
|
|
+ $this.x(leg2Space.x());
|
|
|
+ $this.y(leg2Space.y());
|
|
|
+ //make it no longer draggable
|
|
|
+ $this.draggable(false); //Ninja Supplies
|
|
|
+} else { //was dragged to the wrong spot
|
|
|
+ //snap it back to where it started
|
|
|
+ //Hungry Ninja code
|
|
|
+ $this.x(150);
|
|
|
+ $this.y(476);
|
|
|
+}
|
|
|
+
|
|
|
+//************Scene Object - Initialize When Scene Starts***************//
|
|
|
+//Make a variable to keep track of how many parts were snapped in correctly
|
|
|
+//Also Add to Scene a label called message to display text
|
|
|
+$this.correct = 0;
|
|
|
+message.text("Welcome to Robot Building v.1.0");
|
|
|
+
|
|
|
+//***********Scene Object - Update Every Frame************************//
|
|
|
+//We will check if correct = 6 every frame
|
|
|
+//When it's 6, display congratulatory message
|
|
|
+if($this.correct == 6) {
|
|
|
+ message.text("Nice work, you finished!")
|
|
|
+}
|