Graphics Reference
In-Depth Information
(A):
The
SystemInitialization
function.
SystemInitialization
() {
(A1):
Define Application State
AllWorldBalls: A set of defined Balls, initialze to empty
HeroBall = null
DefiningNewHeroBall =
false
(A2):
Register Event Service Routines
A2S1:
Application Specific User Events
GUISystem
::RegisterServiceRoutine(
GUISystem
:: LMBDown, LMBDownRoutine)
GUISystem
::RegisterServiceRoutine(
GUISystem
:: LMBDrag, LMBDragRoutine)
GUISystem
::RegisterServiceRoutine(
GUISystem
:: LMBUp, LMBUpRoutine)
GUISystem
::RegisterServiceRoutine(
GUISystem
:: RMBDown, RMBDownRoutine)
GUISystem
::RegisterServiceRoutine(
GUISystem
:: SliderBar, SliderBarRoutine)
A2S2:
Application Define Event
GUISystem
::DefineTimerPeriod(SimulationUpdateInterval)
// Triggers TimerEvent every: SimulationUpdateInterval period
GUISystem
::RegisterServiceRoutine(
GUISystem
:: TimerEvent, ServiceTimer)
A2S3:
Honor collaboration request from the GUI system
GUISystem
::RegisterServiceRoutine(
GUISystem
:: RedrawEvent, RedrawRoutine)
}
D:
Event Service Routines.
// Left mouse button down service routine
D1:
LMBDownRoutine
(mousePosition)
HeroBall = CreateHeroBall(mousePosition)
DefiningNewHeroBall =
true
D1L3
GUISystem
::GenerateRedrawEvent
// Left mouse button drag service routine
D2:
LMBDragRoutine
(mousePosition)
RefineRadiusAndVelocityOfHeroBall(mousePosition)
SetSliderBarsWithHeroBallVelocity()
GUISystem
::GenerateRedrawEvent
// Generates a redraw event
Listing 1.7.
Event-driven ball-shooting program.
Search WWH ::
Custom Search