Anda di halaman 1dari 42

Harry Potter Scratch Game 1

Harry Potter Scratch


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

Anda mungkin juga menyukai