280 likes | 546 Views
Event Driven Programming. Chapter 5. Sequential Programming. Computer-Centric Program Runs as Programmer Intended Programmer Sets the Order of Action Programmer Controls the Program’s Flow. Event Driven Programming. User-Centric Computer User Determines the Order of Actions
E N D
Event Driven Programming Chapter 5
Sequential Programming • Computer-Centric • Program Runs as Programmer Intended • Programmer Sets the Order of Action • Programmer Controls the Program’s Flow
Event Driven Programming • User-Centric • Computer User Determines the Order of Actions • Programs are Interactive • Flow of Control is Determined at Runtime • User Clicks Mouse / Presses Key • Object in Scene Moves to create a Condition
Event • Something that happens • Can be caused by computer or user • Mouse Click • Key Press • System Clock Tick • Can occur differently each time the program is executed • Events are WORLD Level
Event Handling • Response to an event • Action or Sequence of Actions carried out when Event Occurs (Methods) • Events TRIGGER response • Programmer must think of all possible events • Plan a Response for Each (Event Handler)
Linking • Event Handling Methods must be linked to the Specific Event Event Occurs which causes the Event Handling Method to execute
Testing • Testing of Event Driven Programs is much more difficult • Programmer does not know flow of program • Flow of Program changes every time program is executed • User’s Actions are difficult to pre-determine • Use Incremental Development and Testing • Write a Method • Test it • Write a Method • Test it • Etc.
Example Program • Create a “Whack A Mole” program. Use the whackAmoleBooth object from the amusement park gallery. • Pressing the “M” key makes the mole pop up • Clicking the mouse on the mole makes the bopper try to hit the mole
Design Storyboards Event: Key Press Letter M Response: Make mole lift out of booth Mole says “Get me if you can!” Make mole go back into booth
Design Storyboard Event: Mouse Click on Mole Object Response: Lift Bopper off Booth Move Bopper to Booth towards Mole Lift Bopper off Booth
Create Methods • World Level or Class Level Methods? • Why • Create moleAppear method
Linking Event to Method • Create New Event • When a Key is Typed
Linking Events to Methods • Select Specific Key • M Make Mole Appear
Link Event to Method • Select Method to Link • wackAmoleBooth, moleAppears • TEST
Create Method • Create bopMole method • Link to Mouse Click on Mole Event • Test
Run the Program • Try to Whack The Mole • Click “M” to make moleAppear Event Handling Method execute • Mouse Click on Mole to make bopMole Event Handling Method execute
Homework • Chapter 5 • 5-1 Exercises • 1 Flight Simulator • 4 Typing Tutor
Events with Parameters • Remember: Parameters are how we send information to the methods • Customize Methods for different objects/values
Create Scenes/Methods • Example: (Textbook page 125) A firetruck has been called to an emergency in a burning building. A person and a fire object has been placed on each floor. When each person is selected, the truck will need to extend its ladder so that each person can climb down to safety.
Design • Event 1 – Click on 1st person • Responding Method – Save person on 1st floor • Event 2 – Click on 2nd person • Responding Method – Save person on 2nd floor • Event 3 – Click on 3rd person • Responding Method – Save person on 3rd floor
Design 2 • Events: Click on Person • Responding Method: SavePerson Point the ladder at the correct floor (parameter – Which floor) Extend the ladder correct amount (parameter – How far) Specific person (parameter – Which person) slides down ladder to the firetruck Pull the ladder back in correct amount (parameter – How far)
Create Scene • Burning Building (building) • Firetruck (vehicles) • 3 People – use whichever you want • RandomGirl1 • RandomGirl2 • RandomGuy2 • FireAnim – www.alice.org • Gallery • Save As name.a2c (not ZIP file) • Put in correct Alice gallery folder: Alice\Alice\Required\Gallery\
Create Method as Before • World Method or Class Method? • Parameters: • whichFloor (object) • whichPerson (object) • howFar (number)
Test the Program • Run the program • VERY Important when using parameters • Run several times • Number Parameters • Small Number • Large Number • Negative Number
Complex Problems • Responses to events may involve multiple actions • Methods can call other methods • Parameters can be used when methods call methods
Homework • 5-2 • Problems 12 & 14