Introduction to Scratch! by 711j5mWX

VIEWS: 0 PAGES: 42

									Harry Potter Game
        Pranali Choubal
          Kunal Shaw
         Barb Ericson
           Dec 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

								
To top