2. Most modern computer
programs that people
use have Graphical
User Interfaces (GUIs).
A GUI has icons on the
computer screen and a
mouse (or other device)
to control a pointer that
can be used to operate
the computer.
Event-Driven Programming
3. Event-Driven Programming
An Introduction to Programming Using Alice
Most modern computer
programs that people
use have Graphical
User Interfaces (GUIs).
A GUI has icons on the
computer screen and a
mouse (or other device)
to control a pointer that
can be used to operate
the computer.
4. This slide is an image of Microsoft Word
2007. It is an example of a modern
graphical user interface.
5. Modern GUIs like the Word 2007 interface require
the use of event-driven programming.
An event occurs whenever an event listener
detects an event trigger and responds by running
a method called an event handler.
6. An event occurs whenever an event listener
detects an event trigger and responds by running
a method called an event handler.
7. An event occurs whenever an event listener
detects an event trigger and responds by running
a method called an event handler.
Modern operating systems and programming
languages contain facilities to let programmers set
up event listeners.
8. An event trigger can be almost any activity or
condition selected by the programmer, such as a
mouse movement, someone pressing the enter
key, or a bank account balance changing.
9. An event handler is a method that is activated
when the event trigger occurs.
Almost any method can serve as an event handler,
such as those that play sounds, initiate data
communications, or perform calculations.
10. In Alice…
• Events can be used to control objects
moving in 3D space.
– Detect when some object moves
– Detect when two objects collide
– Make objects move in response to mouse or
keyboard commands.
• So before discussing events in Alice, let’s
talk about 3D space a little more.
11. 3D space
• A dimension is a way of measuring
something.
• We create a dimension whenever we
assign a value on a continuous scale to
some property.
• Example: On a scale of 1 to 100, how
much do you approve of George Bush’s
performance as president?
12. Measuring distance
• If you wish to measure the location of a point on
a straight line, then you only need one number.
• You could mark a start point on the line, and
then measure how far a point is from the start
point
• By using negative and positive numbers, you
could also indicate which direction the distance
spans.
13. Orientation
• In addition, to the concepts of distance and
direction, we also have the concept of
orientation.
• Orientation means the direction the object is
facing.
• If an object is facing the positive direction on the
line, its orientation is forward.
• If facing negative, then backward.
14. Point of view
• Location and orientation together are
known as the point of view of an object.
15. Two ideas of direction
• Absolute vs. object-relative.
• Absolute direction of boy on bike I backward, but
forward in relation to Alice
17. Position in 2D
• On a flat surface, like a sheet of paper, you need
two values to specify an object’s position (two
dimensions).
• Rene Descarte developed a system of
quantification for two dimensions.
• This is called Cartesian coordinates.
• Cartesian coordinates have an X axis
(dimension) and Y axis.
• The coordinates of a point are always specified
as x,y.
18.
19. A third dimension
• Moving up and down off a flat plane
requires a third axis or dimension.
• Instead of an ordered pair to represent
position, we need an ordered triplet (x,y,z).
• In Alice the z axis provides a
measurement of depth.
• 3D space is sometimes called Euclidean
3-space after the Greek mathematician,
Euclid.
20.
21. Absolute vs. Object-relative
• For all objects we must be aware of
absolute position and direction
• However, we are most commonly
concerned with object-relative position and
direction.
22.
23. More on object-relativity
• We must also frequently consider the
movement of objects from the perspective
of other objects.
• See SharkAsSeenByExample.a2w
25. Events in Alice
Alice events are created in the events area of the
standard Alice interface.
events area
26. Events in Alice
Alice events are created in the events area of the
standard Alice interface.
events area
27. Events in Alice
An Alice event tile specifies the event trigger
and the event handler.
In this example, the event trigger is the spacebar,
being pressed and the event handler is the
iceSkater’s simpleSpin method.
28. Events in Alice
create new event button
The create new event button will reveal a menu
with nine different event types.
29. Events in Alice
The create new event button will reveal a menu
with nine different event types.
30. Events in Alice
A programmer can pick the event type that has the
desired event trigger.
31. Events in Alice
Some event
types also have
built-in event
handlers…
A programmer can pick the event type that has the
desired event trigger.
32. Events in Alice
Some event
types also have
built-in event
handlers…
In other cases,
programmers
must specify
the handler.
A programmer can pick the event type that has the
desired event trigger.
33. Event handlers are specified by
dragging method tiles from the
details area and dropping them
into the event tile.
34. Exploring Events
• Start Alice and open the amusementPark
example world.
• In the events area, you should see seven
event tiles.
36. Event-Driven Programming
• Events are an important part of Alice
programming, allowing the creation of interactive
worlds with keyboard and mouse user controls.
• Most modern programming languages allow
programmers to add events to new software.
• Events can be used for many other purposes,
such as controlling burglar alarms, checking
remote sensors, or checking for system events,
like printers running out of paper.
• Events are an important part of modern
computer programming.