Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
How a function works
A function receives value(s), performs somecomputation on the value(s), and returns (sendsback) a value.
parameters properties
Return the result
Result of Functions A value
The current value of a propertyThe result of a comparison of objects (using properties)The result of an expression that uses parameters and/orproperties
The return type of a function describes the kind of value itreturns, (the operation being performed)
a number a specific object a color a Boolean (true or false) other property values…
Rolling the ballSuppose we want to roll a ball along the ground.We want a realistic motion rather than a slide.The ball must simultaneously move and roll.
realisticRoll
Do together move ball forward 1 meter turn ball forward 1 revolution
Demo
realisticRoll - first try Our design assumed that the ball'smotion is relative to the ground. But theball turns relative to it's own sense ofdirection.
realisticRoll - second tryAsSeenBy ground can be used to makethe ball turn relative to the ground.
Revising the approach
The ball is made to roll 1 revolution.Suppose we want the ball to roll a certaindistance (say 3 or 4 or even 10 meters)along the ground.How many times should the ball turn 1complete revolution?
Number of revolutions The number of revolutions depends on the sizeof the ball
The number of revolutions is distance/( PI * diameter)
But there is no built-in function to return thenumber of revolutionsWe will write our own!
one revolution
four revolutions
ParametersWe want to return the value computed as
distance/( PI * diameter)
Obviously, what is needed is the ball’s diameter
the ball object has a built-in width function the distance the ball is to travel
can be sent as a parameter to the function
Demo
realisticRoll - third attemptConcepts illustrated in this example
A function must have a return statement tosend back a computed value. In this example, a math expression iscreated to compute a number value. The order of evaluation is indicated by theuse of parentheses, as in traditional mathexpressions.
Create a function
1.Function tab
2. Click on button
3. Name the function
4. Select the return type5. Click Okay
Calling the function
test values
We should run the animation with several testvalues to be sure it works as expected.
What happens if you use a negative value?
Levels of Functions
As with methods, functions can be eitherclass-level or world-level. (The functionjust presented was class-level.)The guidelines for class-level methodsalso apply to class-level functions:
No references to other objects. No references to world-level functions youhave written (built-in world-level functionsare fine to use).
Thinking About MoreAdvanced Worlds
No doubt you have started to thinkabout building animations likesimulations and video games…To build more advanced worlds, youwill need to write code that involvesdecisions
Examples of DecisionsIn a car-race simulation, the driversteers the car around curves andpast mile-markers.
If the car stays on the road, the scoreincreases. If the car goes off the road into thestands, the car crashes. If the driver gets the car over thefinish-line, the time is posted and thedriver wins!
Logical Expressions
A decision is made based on currentconditionsA condition is checked in a logicalexpression that evaluates to true or false(Boolean) value
car on road true car over finish line false
If/ElseIn Alice, a logicalexpression is used as thecondition in an If/Elsecontrol structure.Decisions (using If/Else) areused in
functions methods
Example: Boolean FunctionSuppose you are building a simulation system used totrain air traffic controllers.One of the tasks of an traffic controller is to be alert forpossible collisions in the flight space.
StoryboardOne factor in determining whether two aircraft are indanger of collision is the vertical distance (difference inaltitudes) between them.We can write a function that checks the vertical distanceagainst a minimum difference in altitudes.The function returns true if they are too close, otherwisefalse.
isTooClose
Parameters: aircraftOne, aircraftTwo, minimumDistance
If the vertical distance between aircraftOne and aircraftTwo is less than minimumDistance return trueElse return false
Demo
FlightCollisionConcepts illustrated in thisexample
A world-level relationaloperator is used to create aBoolean expression as thecondition. The absolute value function isused to make sure thecomputed difference in altitudeis not a negative number.
Storyboard
To avoid a collision, the aircraft that isabove the other should move up and thelower aircraft should move down.
avoidCollision
Parameters: aircraftOne, aircraftTwo
If aircraftOne is above aircraftTwo Do together aircraftOne move up aircraftTwo move downElse Do together aircraftOne move down aircraftTwo move up