Monday, August 27, 2012

Thanks for a FABULOUS summer!

The entire gang!
Welcome to the new school year, everyone! We hope you all had relaxing, fun and sun-filled summers, and are ready to begin the new year!


We would like to send out GIGANTIC "Thank you's!" to all of those who attended, taught, and otherwise assisted with camp this year. The high school summer camps were fantastic! The projects created by the campers this year were some of the best we've ever seen, and we are so proud of them for their hard work and enthusiasm.

Scroll down for a few pictures from camp, and be sure to check out the reminders!


Camp Assistants Sandy and Suzi.
Camp Assistants Kelsey and Beth.
Silly girls!
LilyPad Projects.
NXT Instructor Abdullah.


Also, a few quick reminders:
  • If you still need a battery for your LilyPad animal, stop by our office in SH 125 Monday through Friday between 10:00-5:00 PM to pick it up. 
  • Follow us on Facebook for future computer science-related activities, including news about summer 2013 camps!
  • Pictures from camp can be viewed on our Facebook page.
  • Videos from camp can be viewed on our YouTube channel:  http://www.youtube.com/channel/UCJfVLW9SpZyWr7FubBNdqoA?feature=mhee
  • Visit us online at http://www.cs.nmsu.edu/ywic anytime for up-to-date information on our current activities. 



Saturday, July 14, 2012

GyG & YWiC Summer Camp 2012

Hello everyone -

We hope all the Santa Fe girls had an awesome time at camp! We enjoyed teaching you all and getting to know you, and we hope that the rest of your summer is fun and relaxing. Also, we wanted to take this time to post a link to the camp video we created. Just click on the image below to view the video on YouTube. Enjoy!

Friday, July 6, 2012

Santa Fe Camp Resources

This is where you will find all the surveys and links needed for the YWiC & Guts y Girls Summer Camp! If you have any questions or comments, or if any links are not working just let us know and we will fix it right away!








Camp Post-Survey:
https://docs.google.com/spreadsheet/viewform?formkey=dHJGcE5IZWdDZjd4VXBYaW9rOW1ZRlE6MA#gid=0

July 13: End-of-Day Survey
https://docs.google.com/spreadsheet/viewform?formkey=dERENTdaZUJRMWd3dFBocU40SEx2VlE6MA#gid=0

July 12: End-of-Day Survey
https://docs.google.com/spreadsheet/viewform?formkey=dHZiOU5iNGtlUnBNRVVXN3lPdUFkemc6MA#gid=0

July 11: End-of-Day Survey
https://docs.google.com/spreadsheet/viewform?formkey=dEhJaUFGbE96cllfNU12NkJuNGt1cEE6MA#gid=0

July 10: End-of-Day Survey
https://docs.google.com/spreadsheet/viewform?formkey=dEllXzZ5ZWhVT2JDeGNsVU5QOW95Qmc6MA#gid=0

App Creation Outline:
https://docs.google.com/spreadsheet/viewform?formkey=dFhseGRtaFNtaGJBZXc2V1p6NVpRT1E6MA#gid=0

July 9: End-of-Day Survey
https://docs.google.com/spreadsheet/viewform?formkey=dFJ1LTZ2bG1CVjFKVVRKbDZrOHB6U3c6MA#gid=0

July 8: End-of-Day Survey
https://docs.google.com/spreadsheet/viewform?formkey=dEl3aHpIVldiZDlpTmdCSXpfTldmLWc6MA#gid=0

July 7: End-of-Day Survey
https://docs.google.com/spreadsheet/viewform?formkey=dG1ObVlSSnN2eHNUWXN0dlhkNTNXNFE6MA#gid=0

Camp Pre-Survey:
https://docs.google.com/spreadsheet/viewform?pli=1&formkey=dHpYUHlURkVkWHpxOXNwS0ZtMy1WbFE6MA#gid=0

July 6: End-of-Day Survey
https://docs.google.com/spreadsheet/viewform?formkey=dHVRdVgzQTdHYkJxZFpUWUlNSlB5Tnc6MA#gid=0

LilyPad & App Inventor Pre-Survey:
https://docs.google.com/spreadsheet/viewform?formkey=dDhqUlRKck1IaDVzc05fTlVESE5Ma3c6MA#gid=0

Monday, July 2, 2012

For your viewing pleasure, we present the CAMP VIDEO!!!

Happy Monday morning, everyone!

We are happy to report that the high school summer camp ended fantastically! On Friday the campers presented their final LilyPad and Alice projects to the staff, parents, and some NMSU faculty. The projects created by the campers this year are some of the best we've ever seen, and we are so proud of them for their hard work and enthusiasm.

Also, we are happy to present the final camp video for your viewing pleasure! The video is posted on YouTube under the name: "YWiC 2012 HS Camp Video". Just click the image below to watch the video!


Finally, just a few quick notes and we'll let you get back to your morning:

  • If you did not receive your final paycheck, certificate, or LilyPad battery PLEASE stop by our office in Science Hall 125 to pick it up. You can also call if you have any questions, 575-646-4451.
  • There were some requests about where/how to buy extra LilyPad pieces. We purchase all of our supplies from SparkFun.com. If you have any questions about ordering, please don't hesitate to contact us!

Thursday, June 28, 2012

2 Days

Happy National Orange Blossom Day. The girls' projects are really blossoming. Orange you mad you weren't there to see the progress?! This morning the girls began putting the finishing touches on all of their projects. Once again, we spent the morning with our good friends Alice and Lily. For lunch, we gobbled down the DG's sandwiches like starving District 12 children! But wait! There's more! For just two dollars I will tell you all about the Hunger Games Themed cupcakes we had! Just kidding. I don't get paid extra for this. But yes we did have delicious Hunger Games Themed cupcakes. After our feast we went back to the icecave and continued to work on our projects. Well, have a nice Orange Blossom Day!

Nobody Died Today

Happy National Chocolate Pudding Day! The campers were really PUDDIN' some effort into their projects today! In the morning they worked on their Alice and Lilypad projects! For lunch we were treated to the always delicious and questionably nutritious Andele's! Unfortunately, Houston had a problem, we had to eat with spoons. But all was well because the girls forgot about the traumatizing experience when they received their stuffed animals for their Lilypad project!!! In the afternoon, we had much more of the same, the girls continued to work on their projects. Have a very evenly proportioned Chocolate Pudding Day (believe me it can get out of hand).

Monday, June 25, 2012

When You Don't Recycle...

Happy National Lightning Day! Today the girls continued to work on their electrifying Alice and Lilypad projects. We stuffed our tummies with yummy pizza from Roadrunner pizza at lunch. After lunch, the girls presented their apps that they created. Every group surprised us with something creative, innovative and entertaining. The camp assistants all assessed the apps via online survey. The winner of the contest will be determined on Friday. After presentations we had open lab where the girls worked on whatever they needed to. But none of the girls got to work on anything because after presentations, all of the recyclables that were thrown into the trash morphed together into a landfill monster and attacked the culprits!!! Lesson of the day: recycle, my dear friends, please recycle.

Happy Belated Harry Potterluck Explosions

Happy belated Stupid Guy Thing Day! I suppose that today's holiday doesn't apply to us since we are a camp full of girls. Anyways, the girls have been rushing to finish all of their projects, espically their App Inventor projects which are to be presented on Monday. Alice and Lilypad projects are coming along, everyone is very excited about their projects. We were treated to Dickey's Barbeque and a (dramatic pause) HARRY POTTERLUCK complete with BUTTERBEER, DEALTHY HALLOWS COOKIES, BROOMSTICKS, CHOCOLATE FROGS, AND GOLDEN SNITCHES! Thank you, camp assistants. You are awesome. We returned from lunch with full bellies and the girls had to work on Lilypad for about an hour and the rest of the time was free lab. Except no one made it to free time because the mysterious time bomb of butterbeer with chocolate frogs caused cataclysmic explosions in all of the girls lower intestines. Happy Day.

App Competition Judging!

Today marks the end of App Inventor! Here's the form for the judging, best of luck to everyone!

https://docs.google.com/spreadsheet/viewform?formkey=dFRRYnA4SGVWNEUxNl9zLWVMdzQwbmc6MQ#gid=0

Thursday, June 21, 2012

Zombies on Stage

Happy Make Music Day! Strangely, I have not heard any music coming from the girls because they have been working so hard! They worked on Alice this morning, most of them are almost done with the game program with the tennis racquet-holding penguin. After Alice, the girls worked on their apps for the App Inventor competition. I've seen a lot of cool apps in the making! For lunch, we were served a delicious lunch from the very kind Lorenzo's. THERE WAS SO MUCH BREAD. When we returned to the Ice Cave, the girls adamantly worked on their Lilypad bags. They are all so much better sewers than we were last year. The last thirty minutes were scheduled for a free period where the girls could work on  either their Lilypad, Alice, or App Inventor projects, but they couldn't because one of the girls turned into a zombie and ate everyone. Except me. Anyways, have a wonderful day.

Alice Game Daily Project Instructions



*********************************************************************************
BEGIN GAME
*********************************************************************************
Day 5 (Tuesday): (1.5 hours)
events, collision detection

We’ll be building a game that’s pretty much a penguin playing racquetball.

Events:
Open Alice and click on whichever template you want, then go to Add Objects     

Local gallery → Animals → penguin
Local gallery → Sports → tennisRacket
Local gallery → Shapes → sphere
Local gallery → Shapes → square
Local gallery → Buildings → Factory

Drag the sphere, tennisRacket, factory, and square away from the penguin, we’ll work with him first.
Shrink down the factory until you can’t see it.

Click ‘DONE’ button



Penguin arrangement:
Right click penguin to situate stuff:

  • Penguin-->orient to-->camera
  • Penguin-->turn left-->.5 revolutions
  • Penguin-->rightWing-->roll left--> 1/4 revolutions
  • Penguin-->rightWing-->turn right--> .3 revolutions

tennisRacket arrangement:

  • TennisRacket-->orient to-->camera
  • TennisRacket-->move to-->Penguin-->rightWing
  • TennisRacket-->move left-->.6 meters
  • TennisRacket-->roll left-->1/4 revolution
  • TennisRacket-->set vehicle to-->Penguin-->rightWing

Now the racket will follow everything we tell the rightWing to do.

**********************************************

Penguin:

Click on the penguin in the object tree, then in “penguin’s details” click on the methods tab.
Create a new method called swingRight.

swingRight method:
  • Expand the view of the penguin in the object tree and select the rightWing
  • In the rightWing’s methods tab, drag rightWing-->roll into the swingRight method and set it to roll right--> ¼ revolutions. Because the right wing is oriented weirdly now, it just took trial-and-error to figure out which way to turn/roll it.
  • right-click that instruction and make a copy, then change the copy to ‘roll left’

Make a call to penguin.swingRight in world.my first method to make sure that it is the motion we want. Play your world.

The swing is a bit slow, so set the duration of each of those to .5 seconds.

swingRight event:
Now we’re going to make an event! It’s not useful to have the penguin swing once at the beginning of running the program, we want to be able to swing at a ball. In the top right portion of Alice, you’ll see the Events screen. We want to:
  • create new event-->when a key is typed
  • set the ‘any key’ to F, and the ‘do’ to penguin.swingRight
  • Go back to world.my first method and delete the call to penguin.swingRight.
  • Play your world, hit the F key, and see what happens

****************
Really quick, right-click the penguin and have him turn left ½ revolution so that he’ll face where the wall will be later.
****************

Go to the penguin methods tab and create a new method, swingLeft.

swingLeft Method/Event:
  • First we need to turn the penguin around and get the wing situated to swing backwards. Put a Do together in the method
  • Inside it drop a penguin-->turn right--> ½ revolution, duration .5 seconds
  • Expand the penguin in the object tree and click on the right wing, then the methods tab
  • In the Do together drop a rightWing-->turn left-->.1 revolutions, duration .5 seconds
  • After the Do together, drop a rightWing-->roll left .25 revolutions, duration .5 seconds, then copy it and change it to roll right. This is the same motion we had in the swingRight.
  • Now make a copy of the Do together at the top and stick it at the bottom, then switch the penguin.turn right to a turn left and the rightWing.turn left to a turn right. This resets the penguin.

  • Create a new event that says when A is typed, do Penguin.swingLeft
  • Play the project so far and see what happens with the swingLeft method. Does it behave how we want it to?

It works good, but the penguin just kinda stares at us while he swings backwards, so we should turn his head so it looks like he is watching the ball.
  • Expand the penguin in the object tree again and click on the head, then methods tab
  • Inside the first do together put head-->turn right-->.3 revolutions, duration .5 seconds
  • Copy it and stick it in the last do together, but turn left instead.

Try it again!

Now movement! Create new methods for the penguin called moveLeft and moveRight.

moveLeft:
  • do together
  • penguin-->move left--> .25 meters, duration = .25 seconds, style = abruptly
  • penguin-->move up--> .1 meters, duration = .25 seconds, style = abruptly
  • then copy the do together and change the move up to a move down
  • create yet another event that says when the ←(left arrow) is typed, do penguin.moveLeft

Play the world, see if you can move the penguin left.

moveRight:
  • put a do together from moveLeft onto the clipboard, then stick it in moveRight
  • change the move right to a move left
  • make a copy of that do together and stick it underneath, then change the move up to a move down.
  • create yet another event that says when the -->  (right arrow) is typed, do penguin.moveRight

Play the world to make sure you have left/right movement and racket swinging

************************************************
START HERE: June 21, 2012
************************************************

Ball:
Now we need to actually hit the ball.
  • Go to add objects and right click the ball-->move to-->tennisRacket, then select the re-size objects, and shrink the ball down to a decent size
  • right-click sphere-->orient to-->camera
  • In the sphere properties, you can change the color if you want

Now we’ll do a simple example of collision detection: when the tennisRacket hits the sphere, we want to sphere to move forward.

Click the sphere in the object tree, then methods tab, then create new methods: “moveForward”, “moveBackward”, “hit”, and “bounce”.

hit Method: (This is for when the ball hits the racket)
  • First thing is an if/else, drag it into the method, and click true for the default setting
  • put a print statement in the if part that will print “Hit Method” so we know when we’re in it
  • Booleans variables are useful here, one for if we hit the racket last and one for if we hit the wall last. They both can’t be true at once. So in sphere--> properties make two boolean variables, hitRacket and hitWall, and set them both to false in the tab
  • In the if, set hitRacket-->true and hitWall-->false (they’ll be useful in moveForward and moveBackward)
  • If we “hit” the racket, we want the sphere to move a certain distance away from the racket, so do sphere-->move forward--> 5 meters
  • Also make a call to the moveForward method we created, we’ll need it later.
  • Create an event so that when the world starts, do sphere.hit
  • Play the project so far
  • The last thing is that we need the if part to happen based on how close the sphere is to the racket. So now we’ll do sphere-->FUNCTIONS. So looking at this list, which of the functions do we want to use to tell if the racket has “hit” the ball?
  • sphere is within “threshold” of object-->1 meter-->tennisRacket
  • Play again, the ball should still move forward!
  • We can hit the ball once at the beginning, but that event only happens when the world starts, so in order to keep checking if we’ve hit the ball, we’ll need to loop the ‘hit’ method continuously, so drag a loop into the method, click infinity times, and drop your if/else statement inside of it.

moveForward Method:
  • first do a print “moveForward Method” so that we know when the program is in it
  • in sphere-->properties, create a new number variable called angle
  • drag angle into moveForward and set the value to something.
  • In the world functions tab, find the random number function and put it as the value for angle, with a minimum of -.05 and a max of .05
  • we want to keep moving forward little bits as long as the last thing we hit was the racket. Once we hit the wall, that will change. So a while loop, then expressions-->hitRacket, then hitRacket-->logic--> ==--> true. So while (hitRacket == true), move forward.
  • Stick a do together in the while loop
  • sphere-->methods tab-->move forward-->.25 meters, duration .05 seconds, style abruptly
  • sphere-->methods tab-->move left-->angle meters, duration .05 seconds, style abruptly. Since -.05 < angle < .05, it can move right .05 meters or -.05 meters, but moving right negative meters just means move left, so it could go left or right after hitting the racket. We assign angle before the while loop so that it won’t keep changing while we should be moving in a line.

Before playing it, go back to hit and delete the move forward-->5 meters
Play the thing and see how it works so far!

This is how collision detection works! Once an object is within a certain distance of another object, we count them as having “hit” each other, so we need to either stop the moving object or have it move in another direction.

***********************************************************
Square:
Right-click the square and orient it to the camera, then move it to the entire penguin. Move the square forward 5 meters
Go to Add Objects and re-size the square to cover the sky.
Remember the factory object we dropped in earlier and shrunk down? Go to the square properties and set the texture to the factory.

The reason we did a square with a texture of factory instead of using the actual factory is that distance is measured from the very center of an object. Since the square is 2D, the distance from the ball to the square is pretty much what it looks like, so it’s easy to figure out when we should bounce the ball back. If we used the factory, it would be a huge distance and it would be hard to figure out what the threshold should be for our function.
************************************************************

bounce Method: (This is for when the ball bounces off the wall)

  • Go into the sphere’s hit method and drag the whole loop onto the clipboard, then go to the bounce method and drag the clipboard item into it.
  • We’ll use the same kind of logic, but with a couple changes. change the print to say “Bounce Method”
  • change hitWall-->true, since the wall will have just been hit, and hitRacket-->false
  • We’ll also want to do our sphere.moveBackward method, which is the opposite of the moveForward one we just made, so call moveBackward
  • The last thing is that our condition is different now. We can’t do “sphere within a certain distance of the square” because distance is measured from the center of the square, and that will change depending on where we hit on the wall (draw on board to demonstrate). But we basically need to make sure that the ball will stay on this side of the square-wall.
  • In sphere-->functions, go down to the spacial relation group and grab the function sphere is in front of, and drop that in the if condition, and set the object to sphere is in front of square. Because of the orientation weirdness, “in front” for us means the ball is behind the wall.
  • Create an event so that when the world starts, do sphere.bounce

moveBackward Method:
  • drag in a print statement that says “MoveBackward Method”
  • In moveForward, drag the angle set value onto the clipboard and stick it in moveBackward
  • In moveForward, drag the while loop onto the clipboard and stick it in moveBackward. Change the condition to hitWall == true
  • Change the sphere-->move forward to a sphere-->move backward

Try playing it, see if it all works together!

Now the problem is that if we miss the ball, it will fly backwards forever, because it never hits the racket where it is told to turn around. So we need a miss method! Go to the sphere methods tab and create a new method called “miss”

miss Method:
  • First we’ll need an if statement to determine if we’ve missed or not. So if, initially set to true. The best way to trip this is to set it to ‘if sphere is within _____ of camera’. So that’s a sphere function, set the threshold to 7 meters for now. We can change it individually if it’s not tripping it.
  • Inside the if, print “Miss Method”
  • set hitRacket-->false and hitWall-->false
  • Now we’ll do a scoring thing.
  • Go to add objects and the last thing is create 3D text. Make it say 3.0, then ok. You’ll want to move it up towards the top of your visible world. Rename it in the object tree as livesLabel
  • We’ll make one more variable, in the world properties, called lives, a number variable. Start it as 3.
  • Drag the lives variable into the miss method and select ‘decrement by 1’
  • click livesLabel in the object tree and go to the properties. drag the text property into miss and set it to the default string.
  • In world functions, drag the ‘what as a string’ into the default string area, and set the what to lives, duration 0 seconds
  • Now if we have 0 lives left, we want to stop the game, so drag an if just under the ‘set text to’ and set it to true. Drag the lives variable into the true slot and set it == 0.
  • Inside this new if, do livesLabel-->properties-->set text to-->Loser!
  • Then put in a loop and set it to infinity times. This will keep the game right here forever.
  • If Alice gets past this if statement, that means we still have lives left, so we need to get our ball back. Go to sphere-->move to-->tennisRacket, duration 0 seconds, and stick it after the entire if for lives == 0
  • Now this method is treated the same way as our hit and bounce methods, we always need to be checking for it, so stick the entire thing in an infinity times loop and create a new event that says when the world starts, do sphere.miss

Wednesday, June 20, 2012

Spontaneous Combustion

Happy National Vanilla Milkshake Day! Today the campers earned their milkshakes by continuing to strenuously work on their Alice and Lilypad projects! We rounded day four of our Alice lessons and pushed our little programming birdies out of the nest and let them fly! This morning they worked on Alice until 10:30 and then began construction on their apps using App Inventor. This afternoon, after we ate delicious cheesy weesy pizza from Roadrunner Pizza, they continued to learn about the wonders of Lilypad! They even began work on their bags which they will program to do wondrous things! To finish off the day, Nicole taught the girls about using Alice to create games! Also, not like it's a big deal or anything, WE GOT PAID!!!! YAYYY!!! :D Unfortunately, the girls were so excited about their paychecks, THEY EXPLODED! (That was such an awkward call to 911). Well, we will see you tomorrow. Hopefully the surgeons at Memorial Medical Center can put all of the girls back together by tomorrow...

Tuesday, June 19, 2012

Frozen Exploding Mummy

What a fantastic Juneteenth! Today marks the anniversary of the end of slavery in the United States. Our campers have certainly been slaving over their work. They have made a lot of progress in Alice and even began a program to make a mummy explode. Poor mummy's mummy. Everyone participated in another Stand-Up meeting and it seems the campers have a busy week ahead of them. We were treated to an overdose of delicious food from everyone's favorite Mexican food restaurant, Andele's. When we returned to the icebox...ah, classroom...the girls had another Lilypad lesson where they worked with the speaker and RGB components. To close off the day, a woman from the Career Services department came to speak to the girls about jobs and how to prepare for applying to them. Unfortunately, all the girls were frozen in their seats. Not really.

Monday, June 18, 2012

Richard Jr. Attacks

Having a wonderful Splurge Day? The campers have certainly been busy today. We had our first Stand Up meeting this lovely Monday morning in which each camper discussed what they have done with their projects and what they plan to do for the rest of the week. They began their first lesson in App Inventor, where they created an app that would make a cat meow when you pet it. Everyone seems to have picked up the App Inventor programming quickly. We had a delicious meal of sandwiches from the fine DG's Deli. When the girls returned from lunch they began learning yet another new program called Lilypad. Alyssa taught them how to sew with a magical conductive string that connects the Lilypad components on a fabric of some sort. Oh, one of the campers got eaten by the notorious cockroach Richard Jr., in the restroom. (Joking)

Friday, June 15, 2012

Flying Cat Day

Happy fly a kite day! The campers are flying along with their Alice projects! This morning they continued to build their skills in the animation programming world! Selena, a representative from financial services, came to talk to the girls about their scholarship options at NMSU today. We were treated with a tasty meal from the exquisite barbeque restaurant, Dickey's. In the afternoon, the girls had the option to either continue to work on Alice, or watch the adorable movie "How To Train Your Dragon." But...we didn't get to the afternoon! A monster arose from the leftover barbeque sauce and ATE EVERYBODY!! Except for me. Just kidding. Have a nice day. Beware of the barbeque monster...

Another Evening of Food and Fun!

What another busy day! We started the day with another Alice lesson which continued their storyline. The girls learned how to set the camera vehicle to another object and created a universal walk method. At first, the girls had some trouble but were finally able to get it for the most part. They then moved on to work on their music video projects with their partners. Shortly after, NXT robotics began for the last lesson. They continued to fix their robots for the upcoming competition later in the evening. 


Then it was lunch! We were treated to Lorenzo's and had plenty to go around. We then had our last forensics lesson in which the girls finalized their upcoming presentations and presented them to the class. The girls ended the day with their surveys and of course their blog. 

Later in the evening, we re-grouped for our mid camp presentations. The girls had their exciting robotics tournament in which a^2 (the twins) won first place, Jordan won second and Summer won third. They then presented their forensics crime scenes and after a long day we all finally went home.


Thursday, June 14, 2012

Alice Daily Project Instructions

Alice can be REALLY fun ... as well as very tedious. Because of this, we know that it is going to be difficult to show you all of the possibilities that Alice holds for creating animations and games. We would like you to have as much time as possible to work on your individual Alice projects, so we have posted the instructions for the daily Alice project here. Within this post you will find the steps for creating the "Egypt" Alice project that we will be adding components to daily. We will work through these instructions with you in class for about 45 minutes to an hour each morning, and then we will let you work for the rest of the 30-45 minutes on your own Alice projects. It is your responsibility to finish the rest of the daily instructions on your own before the start of the next day, so that you will be ready to proceed and following along with the lessons that we will be giving.


************************************************************************************************************
Day 4 (Friday): Functions & Conditionals



Open Alice, Close welcome screen
Click ‘File’ → Open world → egyptProject → Click ‘Open’

Let’s begin by making the laser beams we created yesterday hit the mummy …


Object tree → World → create new method → name: my fifth method

In 'myfirstmethod':
 
Methods tab → Drag in ‘myfifthmethod’ to be last instruction 



We want the Pharaoh to be facing the mummy and the mummy to look aggressive when we view this scene. Lets make methods for this!

Object tree → Mummy → create new method → name: aggressive1 method

Click ‘Add objects’ → Use object controls to lift Pyramid up so that you can see the mummy → Click ‘Done’

First we are going to make the Mummy’s arms move ... We need to get closer to the mummy so that we can see him. Navigate through the world so that you are close to the mummy.
Object tree --> Mummy --> Properties tab → capture pose → name: standing

Right click on the following pieces of the Mummy to do the following. He will change positions in the world. You are NOT dragging blocks into any methods to do this.
Right click on Mummy.right forearm → turn backward → 0.15 revolutions
Right click on Mummy.right arm → turn backward → 0.05 revolutions
Object tree --> Mummy --> Properties tab → capture pose → pose1
Return mummy to standing pose … To do this, do the following :
Object tree → Mummy
Right click on Mummy → methods → set pose to → standing

Right click on Mummy.left forearm → turn backward → 0.15 revolutions
Right click on Mummy.left arm → turn backward → 0.05 revolutions
Object tree --> Mummy --> Properties tab → capture pose → pose2

Return mummy to standing pose ... To do this, do the following:
Object tree → Mummy
Right click on Mummy → methods → set pose to → standing
In ‘aggressive1’ method
Drag in ‘Loop’ → 4 times:
Drag ‘mummy set pose to’ → pose1 → 0.5 s
Drag ‘mummy set pose to’ → pose2 → 0.5 s

In ‘myfifth method':
Set vehicle of Mummy back to entireWorld → 0 seconds
(Properties tab → drag ‘vehicle’ into method → select entireWorld)

Object tree → Pharaoh
Drag ‘Pharaoh turn’ → left → ½ revolution → 0 seconds

Object tree → Mummy
Methods tab → drag ‘aggressive1 method ’ into my fifth method

Object tree → Mummy → create new method → name: aggressive2 method

Now we are going to make the Mummy’s body move...

Drag in ‘Loop’ → 4 times:
                          Drag ‘mummy roll’ → left → 0.03 revolutions → 0.25 s into method
                          Drag ‘mummy roll’ → right → 0.06 revolutions → 0.25 s into method
                          Drag ‘mummy roll’ → left → 0.03 revolutions → 0.25 s into method

            In ‘myfifth method
              Drag ‘Do together’
              Object tree --> Mummy --> Methods tab
                        Drag ‘aggressive1’ & ‘aggressive2’ methods into ‘Do together’
              Drag ‘Do in order’ inside ‘Do together’
              Drag wait → 2 seconds into 'Do in order'
              Object tree → vehicle cylinder
              Drag ‘cylinder move to’ → Mummy → entireUpperBody → 2 seconds inside 'Do in order'

Save your project! 

Now we want to make the mummy explode when the laser hits him. To do this, we need to know when the laser is close to the mummy. We need a function and a condition to test this …

In ‘myfifth method’:
     Drag ‘If-Else’ → true
     Object tree → vehicle cylinder --> Functions tab
          Drag ‘cylinder is within threshold’ to replace ‘true’ 
          Select 1 meter → Mummy → entireUpperBody
     Drag ‘Do together’ inside ‘if’
          In 'Do together', Set ALL cylinders’ opacity to 0% → 0 seconds 
          (To do this ... Properties → Drag ‘opacity’ into ‘Do together’ → select 0%) 

Object tree → Mummy → create new method → name: explode
Drag ‘explode’ block inside if statement in ‘my fifth method', so that it is the last instruction in the if statement

In ‘explode’ method: 
     Drag ‘Do together’ into method
     
     In 'Do together':
          Drag ‘Mummy.neck move’ → up → 10 meters
          Drag ‘Mummy.right arm move’ → right → 10 meters
          Drag ‘Mummy.left arm move’ → left → 10 meters 

          Drag ‘Do together’ into method; place AFTER first ‘Do together’: 

     In 'Do together':
          Drag ‘Mummy.upper body roll’ → left → ¼ revolution
          Drag ‘Mummy.upper body move’ → down → 1.1 meters
          Drag ‘Mummy.left leg turn’ → backward → ¼ revolution
          Drag ‘Mummy.left leg move’ → down → 1.1 meters 
          Drag ‘Mummy.right leg turn’ → forward → ¼ revolution
          Drag ‘Mummy.right leg move’ → down → 1.1 meters 

Click ‘add objects’ → Special effects → fire → add instance to world
Move fire to where mummy explodes … Play animation and adjust if necessary
Click ‘Done’ & Save!!!

Object tree → fire → Properties tab → Opacity → 0%

In myfifthmethod:
     In ‘Do together’ inside if statement, set fire opacity to 60% → 0 seconds
     (To do this ... Properties tab → Drag ‘opacity’ → select 60% → 0 seconds)
     Drag ‘wait for 2 seconds’ after ‘explode’ block

     Drag in ‘Do together’
          Object tree --> Fire → Properties tab → Drag ‘opacity’ → 0%
          Object tree → Mummy → Properties tab → Drag ‘opacity’ → 0% 

     Object tree → Pharaoh
          Drag ‘Pharaoh say’ BEFORE ‘Do in order’
          Select Other → “Oh no! Someone, please help me!” → 3 seconds

     Click ‘add objects’ → Move Pyramid back down to ground level 

Click on ‘File’ → ‘Save World’
Click ‘Play’ 

Now we want Cleopatra to go to the Pharaoh …

Object tree → World → create new method → name: mysixthmethod

In ‘mysixth method’:
     Set Cleopatra’s pose to standing → 0 seconds
     (To do this ... Object tree → Cleopatra → Method tab → Drag ‘set pose to’ → standing)

     Drag ‘Cleopatra move toward’ → 18 meters → entirePharaoh → 0 seconds 
     Drag ‘Cleopatra turn’ → left → ¼ revolutions → 0 seconds 

     Object tree → World 
          Drag in 'universalWalk' → Get pieces for Cleopatra

     Object tree → Cleopatra
          Drag ‘Cleopatra turn’ → right → 0.15 revolutions → 0.5 seconds 

     Object tree → Pharaoh
          Drag ‘Pharoah say’ → “Thanks for saving me!” → 3 seconds

     Object tree → Cleopatra 
          Drag ‘Cleopatra say’ → “I’ll always be here to save the day!” → 3 seconds

In ‘myfirstmethod’
     Object tree --> World --> Methods tab
          Drag ‘mysixthmethod’ to be last instruction in method

Click on ‘File’ → ‘Save World’
Click ‘Play’ … May need to adjust Cleopatra so that she can be seen

Now, lets add some credits to our short animation!

Open Microsoft Paint

Choose background color, save to Desktop as “Credits.jpg”

In Alice …
Click on File → Make Billboard → Select image → Import
Drive camera to Billboard

You should stop when the only thing that you can see on your screen is the billboard (I.e. You will see only one color that takes up your entire screen)

Click on ‘add objects ‘ → place dummy camera → name: viewCredits 

In the Local gallery click on 3D text → “Created by: (Your name here)”

Manipulate text so that it is on Billboard → Click ‘Done’

In ‘myfirst method’:
     Object tree → Camera 
          Drag ‘camera set point of view’ → Dummy objects → viewCredits → 0 sec
          Note: This should be the last instruction in ‘myfirstmethod’

Click on ‘File’ → ‘Save World’
Click ‘Play’ 

Now let’s make the animation a little better …

  • We want the title to display before the talking starts, and then disappear when the talking begins 
     In ‘myfirstmethod’
          Wait 2 seconds before Pharaoh starts talking
          Turn title invisible → 2 seconds

  • We want the mummy chase scene to be faster! 
     Need to create new method for running
     Create new World method → name: Running
     Open pharaohWalk method
     Copy code and place inside Running method
     Enable ‘Do together’ code
     Change seconds to 0.15 instead of 0.5

     In ‘mysecondmethod’
          In loop, Replace pharaohWalk with Running method

  • Sounds! (Should be in folder on Desktop) 
     World → properties tab → Sounds → import sounds
 
     In ‘myfirstmethod’
          Do together: Pharaoh say Ahhh & scream sound 

     In ‘mythirdmethod’
          Do together: Cleopatra say Abra Cadabra & magic sound

     In ‘myfourthmethod’
          Do together: Laser sound and visibility 

     In ‘myfifthmethod’
          After mummy explode
               Do together:
                    Pharoah.upperBody.rightarm → turn backward → 0.4 revolutions → 0.5 s Repeat for left arm
                    Pharaoh woohoo sound
               Do together:
                    Pharoah.upperBody.rightarm → turn forward → 0.4 revolutions → 0.5 s Repeat for left arm

Click on ‘File’ → ‘Save World’
Click ‘Play’