Game Pranali Choubal Kunal Shah Barb Ericson ericson@cc.gatech.edu Dec 2007 Harry Potter Scratch Game 2 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 3 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 4 Change the Background Click on the stage to select it Click on the Backgrounds tab Click on the import button Harry Potter Scratch Game 5 Select New Background Navigate to the HarryPotter folder Select the Stadium and click OK Harry Potter Scratch Game 6 The Stage is Set Harry Potter Scratch Game 7 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 8 The Game so Far Harry Potter Scratch Game 9 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 10 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 11 The Scratch Stage The Scratch stage is 480 pixels wide and 360 pixels high. -240 240 180 -180 x increases x decreases y increases y decreases Harry Potter Scratch Game 12 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 13 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 14 Harry and the Snitch Harry Potter Scratch Game 15 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 16 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 17 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 18 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 19 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 20 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 21 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 22 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 23 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 24 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 25 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 26 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 27 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 28 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 29 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 30 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 31 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 32 Add Lives Variable Click on Variables Click on Make a variable Enter Lives Drag display to top right
Harry Potter Scratch Game 33 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 34 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 35 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 36 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 37 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 38 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 39 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 40 Hide Sprites When Lose When the game is lost hide Harry hide the Snitch Harry Potter Scratch Game 41 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 42 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