360 likes | 1.11k Views
Event-driven programming. Event-Driven Programming. 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 .
E N D
Event-Driven Programming 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 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. An Introduction to Programming Using Alice
This slide is an image of Microsoft Word 2007. It is an example of a modern graphical user interface.
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.
An event occurs whenever an event listener detects an event trigger and responds by running a method called an event handler.
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.
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.
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.
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.
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?
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.
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.
Point of view • Location and orientation together are known as the point of view of an object.
Two ideas of direction • Absolute vs. object-relative. • Absolute direction of boy on bike I backward, but forward in relation to Alice
Object-relative positions • From the coach’s point of view, Alice is behind the boy, while the coach is in front of the boy.
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.
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.
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.
More on object-relativity • We must also frequently consider the movement of objects from the perspective of other objects. • See SharkAsSeenByExample.a2w
Events in Alice Alice events are created in the events area of the standard Alice interface. events area
Events in Alice Alice events are created in the events area of the standard Alice interface. events area
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.
Events in Alice The createnew event buttonwill reveal a menu with nine different event types. create new event button
Events in Alice The createnew event buttonwill reveal a menu with nine different event types.
Events in Alice A programmer can pick the event type that has the desired event trigger.
Events in Alice A programmer can pick the event type that has the desired event trigger. Some event types also have built-in event handlers…
Events in Alice A programmer can pick the event type that has the desired event trigger. Some event types also have built-in event handlers…In other cases, programmers must specify the handler.
Event handlers are specified by dragging method tiles from the details area and dropping them into the event tile.
Exploring Events • Start Alice and open the amusementPark example world. • In the events area, you should see seven event tiles.
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.