Classlevel Methods and Inheritance - PowerPoint PPT Presentation

1 / 29
About This Presentation
Title:

Classlevel Methods and Inheritance

Description:

select the iceSkater tile in the Object Tree. select the methods tab in the details panel ... Opacity of 0%, object is transparent (like clear glass) ... – PowerPoint PPT presentation

Number of Views:32
Avg rating:3.0/5.0
Slides: 30
Provided by: wand166
Category:

less

Transcript and Presenter's Notes

Title: Classlevel Methods and Inheritance


1
Class-level Methods and Inheritance
  • Alice

2
Class-level Methods
  • Some actions are naturally associated with a
    specific class of objects.
  • Examples
  • A person walking
  • A wheel rolling
  • We can write our own methods to define an action
    for a specific class of objects -- a class-level
    method.

3
An example (building technique)
  • How can we create a skate method for ice skater
    objects?
  • We need to
  • tell Alice to associate the new method (the one
    we are about to write) with an ice skater, and
  • write a new method to animate the ice skater
    skating.

4
Demo The solution
  • First, to associate the animation with the ice
    skater
  • select the iceSkater tile in the Object Tree
  • select the methods tab in the details panel
  • click on the create new method button

5
Storyboard for skate
Skate Do together move skater
forward 2 meters Do in order slide
on left leg slide on right leg
  • The slide actions each require several motion
    instructions, so we will break down these two
    actions into smaller steps

6
Stepwise Refinement

Refinement of slideLeft Do in order Lift
right leg and turn upper body forward Lower
right leg and return body upright
Skate Do together 1) move forward 2 meters
2) Do in order slideLeft
slideRight
Refinement of slideRight Do in order Lift
left leg and turn upper body forward Lower
left leg and return body upright
7
Demo
  • Ch04Lec3Skater
  • Concepts illustrated in this example world
  • A method defined for a specific type of object
    defines an action for that object.
  • A method can call other methods.
  • In this example, the skate method calls
    slideRight and slideLeft.

8
Reuse
  • Writing methods to make an ice skater perform a
    skating motion is an intricate task.
  • We would like to have the iceSkater skate in
    other worlds without having to write the methods
    again.
  • The idea of being able to use previously written
    program code in another program is known as
    reuse.

9
A new class
1) Rename iceSkater as cleverSkater. 2) Save out
as a new class. Alice saves the new class as
CleverSkater.a2c
10
Inheritance
  • The CleverSkater class
  • inherits all the properties and methods from the
    original IceSkater class, and also
  • has the newly defined methods (skate, slideLeft,
    slideRight)
  • In other programming languages, the concept of
    creating a new class based on a previously
    defined class is called inheritance.

11
Importing CleverSkater
  • An instance of the CleverSkater class can be
    added to a new world use FileImport.

12
Guidelines
  • To avoid potential misuse of class-level methods,
    follow these guidelines
  • Avoid references to other objects
  • Avoid calls to world-level methods
  • Play a sound only if the sound has been imported
    and saved out as part of the new class
  • If these guidelines are not followed and an
    instance of the new class is added to another
    world, Alice will open an Error dialog box
    to tell you something is wrong.

13
Bad Example
What if there is no penguin in the new world
where a cleverSkater object is imported?
14
Problem
  • Suppose you really want to write a class-level
    method where another object is involved?
  • For example, a method to make the skater skate
    around another object-- in this scene, the
    penguin.

15
Parameter
  • A solution is to write a class-level method with
    an object parameter that allows you to pass in
    the specific object.

cleverSkater.skateAround Parameter
whichObject Do in order Do together
cleverSkater turn to face whichObject
cleverSkater lift right leg cleverSkater
move to whichObject cleverSkater turn around
whichObject
16
Translation to Code
  • Most of the skateAround storyboard design is
    straightforward and easy to code.
  • One step, however, requires some thought
  • cleverSkater move to whichObject --
  • what distance should the cleverSkater move?

17
Calling a built-in function
  • The instruction to move the skater to whichObject
    (penguin, in this example) would look like this
  • Unfortunately, the skater will collide with the
    penguin because the distance between two objects
    is measured center-to-center.

18
Expression
  • To avoid a collision, use a math operator to
    create an expression that adjusts the distance.
  • Math operators in Alice
  • addition
    subtraction ?
  • multiplication division
    /
  • Example

19
Demo
  • Ch04Lec3SkateAround
  • Concepts illustrated
  • A parameter acts as a placeholder for the object
    that will be passed in
  • A call to the distance to function returns a
    number value
  • A math expression can be created as part of an
    instruction

20
Tips Techniques 4Visible and Invisible Objects
  • Alice

21
Opacity
  • Opacity is a measure of how "see-through" an
    image or an object is.
  • The less opaque an object is, the more
    see-through it is.
  • Opacity of 100, cannot see through the object
  • Opacity of 0, object is transparent (like clear
    glass)
  • In Alice, an object with an opacity of 0
    is invisible.

22
Changing the Opacity
  • A change in opacity can be used to simulate real
    world conditions.
  • Example
  • A fish swimming away from the camera should fade
    away because water blurs our vision of distant
    objects.

23
Demo
  • Ch04Lec4LilfishOpacity
  • Concepts illustrated in this example
  • As opacity is gradually decreased, the fish
    becomes less visible.
  • At an opacity of 0, the object is still in the
    world (can still see it listed in the object
    tree) but is effectively invisible.

24
isShowing
  • The isShowing property has a Boolean value,
    either true or false.
  • Setting an object's isShowing property to false
    makes the object invisible in the world.
  • Once again, the object is not removed from the
    world, it is simply not visible in the world.

25
Demo
  • Ch04Lec4ChickenIsShowing
  • Concepts illustrated in this example
  • A billboard can be used to display a title
    screen for the animation.
  • A 2-second wait gives the user time to read the
    billboard.
  • Changing the isShowing property to false makes
    the title screen disappear.

26
Two properties
  • isShowing and opacity are two different
    properties.
  • isShowing works like an on/off switch
  • opacity works like a dimmer switch
  • Although each can be used to make an object
    invisible, changing one does not automatically
    change the value of the other!

27
Practical Uses of Invisible Objects
  • An invisible object is sometimes useful as a
    stationary marker that creates
  • a target for a move to instruction
  • an external reference point for object
    rotational motion

28
Demos
  • Ch04Lec4InvisibleTarget
  • Invisible circle makes it possible to move the
    object to a landing target.
  • Ch04Lec4InvisibleReferencePoint
  • External reference point acts as a pivot for the
    rotational movement of each object.

29
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com