420 likes | 454 Views
Harry Potter Scratch Game. Pranali Choubal Kunal Shah Barb Ericson ericson@cc.gatech.edu 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
E N D
Harry Potter Scratch Game Pranali Choubal Kunal Shah Barb Ericsonericson@cc.gatech.edu Dec 2007 Harry Potter Scratch Game
The Game • Use the arrow keys to move Harry Potter • to catch the golden snitch • to avoid being hit by the bludger Harry Potter Scratch Game
Getting Started • Start Scratch • Delete the cat • Click on scissors and then the cat • or right click on the cat and pick delete Harry Potter Scratch Game
Change the Background • Click on the stage to select it • Click on the Backgrounds tab • Click on the import button Harry Potter Scratch Game
Select New Background • Navigate to the HarryPotter folder Select the Stadium and click OK Harry Potter Scratch Game
The Stage is Set Harry Potter Scratch Game
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 Harry Potter Scratch Game
The Game so Far Harry Potter Scratch Game
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 Harry Potter Scratch Game
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 Harry Potter Scratch Game
The Scratch Stage • The Scratch stage is 480 pixels wide and 360 pixels high. 180 y decreases y increases -240 240 x decreases x increases -180 Harry Potter Scratch Game
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 Harry Potter Scratch Game
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 Harry Potter Scratch Game
Harry and the Snitch Harry Potter Scratch Game
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 Harry Potter Scratch Game
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 • Click on OK Harry Potter Scratch Game
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" Harry Potter Scratch Game
Messages • Scripts can receive 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 Harry Potter Scratch Game
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 Harry Potter Scratch Game
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 Harry Potter Scratch Game
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 Harry Potter Scratch Game
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 the if block and pick "duplicate" • and add to all the other scripts for Harry Potter Harry Potter Scratch Game
Catching the Snitch • Right click on the if block and select duplicate • Drop the copy on the other scripts • Move the scripts to see them better Harry Potter Scratch Game
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 Harry Potter Scratch Game
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 • if you have won these don't need to execute Harry Potter Scratch Game
Winning the Game • drag in a "blank = blank" • from Number • drag in "Snitches Caught" to the first blank area • from Variables • click on second blank area and type in 10 • drag in a broadcast block • Create new message "Won" Harry Potter Scratch Game
Telling the User • Click on Stage • Click on Backgrounds • Click on Import • Navigate to HarryPotter folder • Select Congrats • click on OK Harry Potter Scratch Game
Stage Scripts • Click on Stage and Scripts • Set the initial background to the stadium • when the green flag is clicked • from Looks • When the stage receives a Won message • from Control • switch background to Congrats • from Looks Harry Potter Scratch Game
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 • then click on the snitch sprite and scripts to check the copy worked Harry Potter Scratch Game
When Game Starts • If the user wins and Harry and the Snitch hide when you restart the game • they won't show again if you start a new game • Add "when green flag clicked" show to: • Harry • Golden Snitch Harry Potter Scratch Game
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 Harry Potter Scratch Game
Add Lives Variable • Click on Variables • Click on Make a variable • Enter Lives • Drag display to top right Harry Potter Scratch Game
Start with 3 Lives • Click on Stage • Click on Scripts • Add "set Lives to 0" • Click on 0 and change to 3 Harry Potter Scratch Game
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 Harry Potter Scratch Game
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 • use a stop all block to stop all scripts • Use a repeat block to repeat some actions a given number of times Harry Potter Scratch Game
Bludger Scripts • When the green flag is clicked loop forever • set x to 260 • hide the bludger • wait for some random amount of time between 3 and 5 seconds • show the bludger • Glide to the opposite side • x is -260 • random y from -145 to 145 Harry Potter Scratch Game
Bludger Scripts • When the green flag is clicked, loop forever • check if touching Harry • play a sound • reduce the number of lives • check if lost • lives = 0 • wait till not touching Harry • or you will die quickly Harry Potter Scratch Game
Tell User Game Over • Click on Stage • Click on Backgrounds • Click on Import • Select HarryPotter folder • Select Game Over • Click OK Harry Potter Scratch Game
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 Harry Potter Scratch Game
Hide Sprites When Lose • When the game is lost • hide Harry • hide the Snitch Harry Potter Scratch Game
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 Harry Potter Scratch Game
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 • Add a script to the stage • When the green flag is clicked • Loop forever playing the theme and waiting for it to finish • Make the Bludger come from any direction • and glide across to the opposite side • Add Beaters who can hit the Bludger away • Using the space key • Add a time limit • That counts done Harry Potter Scratch Game