Chapter 7

Events
Chapter 7
Interactive


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
o


Called behavior
Linked to event in Event editor
Behavior – when method linked to event is
performed due to an action
Creating An Event
Click on create new event in Events window
6.1
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-8
6.1
Specialized Events

Some events from the previous list do not appear
in the Events Editor
o
o
o
o

While a key is pressed
While the mouse is pressed on something
While the world is running
When something becomes true
To create specialized event
o
o
Create general event
Right-click and select change to
6-9
6.2
Key Press Event

Alice can detect when a key on keyboard is pressed
o
o
o
Event is triggered when the user types a key
Key that will trigger the event must be specified
any key is the placeholder until you choose a specific key

o
Can have event activated when any key is pressed
Click on Nothing

Choose custom method from drop down menu
6-10
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
6-11
Storyboards
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
6-12
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 in checklist on a form
6-14
6.2
Creating Mouse Event

Event is triggered when the mouse is clicked on an
object in the world
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 by clicking on nothing
6-15
Tutorial 7-3: Mouse Event

Click on refrigerator door causes door to open
o
Can place Alice statement directly in event declaration
6-16
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 boolean variable: doorOpen
Close door
Set doorOpen to false
If doorOpen = false then door is closed
o
o
Open door
Set doorOpen to true
6-17
Storyboard
Event: Mouse clicked on fridge door
Response:
If doorOpen = true
Turn door right ¼ revolution
doorOpen = false
Else
Turn door left ¼ revolution
doorOpen = true
6-18
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
Homework




Read chapter 6 sections 1 and 2
Answer questions in handout
Do lab assignments after handing in answered
questions
Due one week after assigned with 1 week grace