Events Chapter 7 Interactivity The real world is interactive User determines order of actions instead of programmer Control of Flow How sequence of actions in program is controlled o What action happens first, next, and so on Animations o o Movie-style - programmer determines sequence of actions prior program running Interactive - sequence of actions determined at runtime by user Event Program reacts to o o o Mouse click Key press on keyboard Changes that occur during program execution Control of flow is now controlled by user Events Each time user provides some sort of input, we say an event is generated o An event is “something that happens” An event may o o Trigger a response Move objects into positions that create a condition that triggers a response Ex: A collision that moves objects Event Handler Method Called when event occurs Linked to event in Event editor Behavior – when method linked to an event is performed due to an action Creating An Event Click on create new event in Events window Alice Events When the world starts When a key is typed When the mouse is clicked on something While something is true When a variable changes Let the mouse move <object> Let the arrow keys move <subject> Let the mouse move the camera Let the mouse orient the camera See Table 7-1 on page 272 for details of each 6.1 Specialized Events Some events from the previous list do not appear in the Events Editor To create specialized event o o 6.1 Create general event in parenthesis below Right-click and select change to action on left below Specialized Events o o o o While a key is typed (When a key is typed) While the mouse is pressed on something (When mouse clicked on) While the world is running (when world starts) When something becomes true (While something becomes true) Key Typed Event 6.2 Alice can detect when a key on keyboard is pressed o Event is triggered when the user types a key Keyboard key that triggers event must be specified o any key is placeholder until specific key is chosen o o Can have event activated when any key is pressed To associate event with key press Click on Nothing Choose custom method from resultant drop down menu Tutorial 7-1: Key Press Event Have each fairy flap her wings and move up and down when a key is pressed called fly o o When G is pressed event to cause Gossamer to fly When M is pressed event to cause Hazelnut to fly Fairy Flying Algorithms Event: G key is pressed Event: M key is pressed Response: Do together Flap wings of Gossamer Move Gossamer up ½ meter Do together Flap wings of Gossamer Move Gossamer down ½ meter Response: Do together Flap wings of Hazelnut Move Hazelnut up ½ meter Do together Flap wings of Hazelnut Move Hazelnut down ½ meter Programs for Faeries Flying Both events can run at same time Mouse Event Interactive programs often allow the user to use a mouse to click Examples o o o Buttons in a windows-based interface Choose targets in a game Select items on a form checklist Creating Mouse Event Click on create new event and choose When the It can be mouse is clicked on something o o Anything Any object in the Alice World Choose event handler that will be run by clicking on nothing 6.2 Tutorial 7-3: Mouse Event Click on refrigerator door causes door to open o o Can place Alice statement directly in event declaration Notice that there is no way to close the door once it is opened Fridge Door Opens and Closes To get door to open and close you need to remember the state of the door o o If doorOpen = true then door is open o o Is it open or closed? Use a Boolean variable: doorOpen Close the door Set doorOpen to false If doorOpen = false then door is closed o o Open the door Set doorOpen to true Door Open/Close Algorithm Event: Mouse clicked on fridge door Response: If doorOpen = true Turn door right ¼ revolution doorOpen = false Else Turn door left ¼ revolution doorOpen = true Program to Open and Close Door Create Your Own People Models Use hebuilder and shebuilder o o o In People gallery Choose all features of person Has built-in methods hello, angry, happy, walk, confused, no, yes Choosing Body Features • Hebuilder/Shebuilder • • • • User selects the head, body, and leg types User selects skin color, eyes, and mouth User selects hair style and color User selects the clothing People Models Custom Methods • Hebuilder and Shebuilder have custom methods Homework Read chapter 6 sections 1 and 2 Do lab assignments in handout Due one week after assigned with 1 week grace