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
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.
************************************************************************************************************
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
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
Object tree → Mummy → create new method → name: explode
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
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
Object tree → World
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
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
Now let’s make the animation a little better …
Wait 2 seconds before Pharaoh starts talking
Turn title invisible → 2 seconds
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 ‘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’
************************************************************************************************************
Day 4 (Friday): Functions & Conditionals
In 'myfirstmethod':
Methods tab → Drag in ‘myfifthmethod’ to be last instruction
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'
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'
Drag ‘cylinder move to’ → Mummy → entireUpperBody → 2 seconds inside 'Do in order'
Save your project!
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
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:
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 ‘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
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
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
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’
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
Wait 2 seconds before Pharaoh starts talking
Turn title invisible → 2 seconds
- We want the mummy chase scene to be faster!
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)
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’
Subscribe to:
Posts (Atom)