600 likes | 1.15k Views
Harry Potter Game. Pranali Choubal Kunal Shaw Barb Ericson Dec 2007. The Game. Use the arrow keys to move Harry Potter to catch the golden snitch to avoid being hit by the bludger. Getting Started. Start Scratch Delete the cat Click on scissors and then the cat
E N D
Harry Potter Game Pranali Choubal Kunal Shaw Barb EricsonDec 2007 Adventures in Animation
The Game • Use the arrow keys to move Harry Potter • to catch the golden snitch • to avoid being hit by the bludger Adventures in Animation
Getting Started • Start Scratch • Delete the cat • Click on scissors and then the cat • or right click on the cat and pick delete Adventures in Animation
Change the Background • Click on the stage to select it • Click on the Backgrounds tab • Click on the import button Adventures in Animation
Select New Background • Navigate to HarryPotter folder Select the Stadium and click OK Adventures in Animation
The Stage is Set Adventures in Animation
Add Harry Potter • Click on the folder with a star on it to add a sprite from a file • Navigate to the HarryPotter folder • Add Harry Adventures in Animation
The Game so Far Adventures in Animation
Scratch is Event Driven • You can make things happen when events occur • such as a key is pressed • the green flag is clicked on • a message is received Adventures in Animation
Making Harry Move • Click on the Scripts Tab • Click on Control and drag out • when space key pressed • Change to left arrow key • Click on Looks and drag out • switch to costume • Change to Harry_Left • Click on Motion and drag out • change x by 1 • click on 1 and change to -4 Adventures in Animation
The Scratch Stage • The Scratch stage is 480 pixels wide and 360 pixels high. 180 -240 240 -180 Adventures in Animation
Add Other Key Scripts • When right arrow • change to Harry_Right costume • change x by 4 • When down arrow • change y by -4 • When up arrow • change y by 4 Adventures in Animation
Add the Golden Snitch • Click on the folder with a star on it to add a sprite from a file • Navigate to the HarryPotter folder • Add the snitch Adventures in Animation
Harry and the Snitch Adventures in Animation
Snitch Behavior • In a 'normal' Quidditch game the game is over when the snitch is caught • But, in this game you will have to catch 10 snitches to win. • you will need to keep track of the number caught • Each time the snitch is caught it will hide and reappear in a new random location Adventures in Animation
Variables • To remember how many snitches were caught we will need a variable • the value stored in a variable can change (vary) • Click on the Variables button • Then click on Make a Variable • Enter a name for the variable • Use the default of For all sprites Adventures in Animation
Starting • Scratch games and animations usually start when you click the green flag • Click on Stage to select it • Click on Scripts to program • Click on Control to see the control blocks • Drag the "when green flag clicked" block out • Click on Variables • drag the "set Snitches Caught to 0" Adventures in Animation
Messages • Scripts can wait for messages and broadcast messages • blocks are in the Control area • Click on the snitch sprite, then Scripts then Control • To create a message drag out the "when I receive" and click on the down arrow • then on new… • Give the message the name Caught • click on OK Adventures in Animation
More about Messages • Broadcasting and receiving messages is how sprites communicate with each other • it doesn't cause anything to be printed or appear • it does execute scripts that receive the message • All broadcasted messages should have one or more sprites that receive the message Adventures in Animation
Responding to Caught • Hide the snitch • drag hide from Looks • Add one to the number of snitches caught • drag from Variables • Change the x and y values • drag from motion • replace values with random numbers • from Number • Show the snitch • drag from Looks • Play a sound • drag from Sound Adventures in Animation
Conditional Execution • Sometimes we want to execute a block or several blocks if some condition is true • use sensing blocks or number blocks that return true or false • these have 6 sides (hexagon) • The snitch is captured if Harry is touching it • Use an if from Control to check if Harry is touching the snitch sprite Adventures in Animation
Catching the Snitch • If the Harry Potter sprite is touching the snitch sprite • add if • from Control • add "touching …" and change to "Sprite3" • from Sensing • Broadcast the Caught message • from Control • Right click on if part and pick "duplicate" • and add to all the other scripts for Harry Potter Adventures in Animation
Catching the Snitch • Right click on the if touching sprite3 and select duplicate • Drop the copy on the other scripts • Move the scripts to see them better Adventures in Animation
More on Conditionals • Sometimes we want to execute some blocks if a condition is true and other blocks if it is false • Use a if and else block from Control for this Adventures in Animation
Winning the Game • In the snitch script that receives the caught message • drag in a if and else • from Control • place it after the change Snitches Caught by 1 • move the last 3 tiles into the else part Adventures in Animation
Winning the Game • drag in a "blank = blank" • from Number • drag in "Snitches Caught" • from Variables • click on second blank and type in 10 • drag in a broadcast tile • Create new message "Won" Adventures in Animation
Telling the User • Click on Stage • Click on Backgrounds • Click on Import • Navigate to HarryPotter folder • Select Congrats • click on OK Adventures in Animation
Stage Scripts • Click on Stage and Scripts • Set the initial background to the stadium • when the green flag is clicked • from Looks • When receive Won message • from Control • switch background to Congrats • from Looks Adventures in Animation
Hide Other Sprites • If the user has won • hide the other sprites • Harry Potter • Snitch • You can click on the "when I receive Won" • and drag it to the snitch sprite to copy it Adventures in Animation
When Game Starts • If the user wins and Harry and the Snitch hide when you restart the game • they won't show again • Add "when green flag clicked" show to: • Harry • Golden Snitch Adventures in Animation
Making it Harder • add a Bludger • if the Bludger hits Harry he "dies" • start with 3 lives • lose a life each time Harry dies • if Harry loses all 3 lives you lose the game Adventures in Animation
Add Lives Variable • Click on Variables • Click on Make a variable • Enter Lives • Drag display to top right Adventures in Animation
Start with 3 Lives • Click on Stage • Click on Scripts • Add "set Lives to 0" • Click on 0 and change to 3 Adventures in Animation
Painting a Bludger • You can paint a new sprite • click on the paintbrush with a star on it • Click the color • Click the circle shape tool • Click and drag to make the circle • Click on OK Adventures in Animation
Loops • Sometimes you want to repeat blocks until the game ends or something happens • Use a forever block to repeat actions until the game ends • stop all block • Use a repeat block to repeat some actions a given number of times Adventures in Animation
Bludger Scripts • When the green flag is clicked loop forever • set x to 260 • hide • wait for some random amount of time between 3 and 5 seconds • show • Glide to opposite side • x is -260 • random y from -145 to 145 Adventures in Animation
Bludger Scripts • When the green flag is clicked, loop forever • check if touching Harry • play sound • reduce number of lives • check if lost • lives = 0 • wait till not touching Harry Adventures in Animation
Tell User Game Over • Click on Stage • Click on Backgrounds • Click on Import • Select HarryPotter folder • Select Game Over • Click OK Adventures in Animation
New Stage Script • Click on Scripts • Add "when I receive Lost" • from Control • Add "switch background Game Over" • from Looks • Add "stop all" • from Control • Add "stop all" to the end of when receive "Won" script too Adventures in Animation
Hide Sprites When Lose • When the game is lost • hide Harry • hide the Snitch Adventures in Animation
Project Notes • Click on the notepad in the top right corner • Type in project notes • You can upload your project to the Scratch web site • Click on Share! • See it at http://scratch.mit.edu Adventures in Animation
Extensions • Speed up the Bludger each time a snitch has been caught • Will need a variable for "Time to Cross" • Reduce the variable each time each time the snitch is caught • Add background music • Import Theme.wav Adventures in Animation