Presentation is loading. Please wait.

Presentation is loading. Please wait.

Alice in Action with Java Chapter 2 Methods. Alice in Action with Java2 Objectives Build world-level methods to help organize a story into scenes and.

Similar presentations


Presentation on theme: "Alice in Action with Java Chapter 2 Methods. Alice in Action with Java2 Objectives Build world-level methods to help organize a story into scenes and."— Presentation transcript:

1 Alice in Action with Java Chapter 2 Methods

2 Alice in Action with Java2 Objectives Build world-level methods to help organize a story into scenes and shots Build class-level methods to elicit desirable behaviors from objects Reuse a class-level method in multiple worlds Use dummies to reposition the camera for different shots within a scene Understand how an object’s position, orientation, and point of view are determined

3 Alice in Action with Java3 Methods Programs consist of a set of statements Method: behavior-producing message Objects have predefined methods for basic tasks Methods may also be created by Alice developers Two reasons for building your own methods –To organize your story into more manageable pieces –To provide an object with additional behaviors

4 Alice in Action with Java4 World Methods for Scenes and Shots Scene: segment of a story Shot: part of a scene from a given camera position User stories can be divided into scenes and shots –A convenient technique for completing a project Divide and conquer approach to building user stories –Break a big problem into smaller problems –Solve each of the smaller problems –Combine the smaller problems into a solution

5 Alice in Action with Java5 Methods for Scenes Scenario: develop a user story with three scenes Convention for naming methods –Name should be a verb or verb phrase –Name should describe what the method does Creating the first new method –Select the world object –Click the create new method in the details area –Enter playScene1 in the New Method dialog box Check new method by sending say() to ground –First test fails because my_first_method() is empty

6 Alice in Action with Java6 Methods for Scenes (continued)

7 Alice in Action with Java7 Methods for Scenes (continued)

8 Alice in Action with Java8 Methods for Scenes (continued) How to fix the first bug –Click on the tab for my_first_method –Drag a doInOrder control to the top of the pane –Click on world in the object tree –Drag playScene1() into the doInOrder statement Extend technique used to build playScene1() –Add two methods: playScene2(), playScene3() –New method sends a say() message to the ground –New Methods are called in my_first_method()

9 Alice in Action with Java9 Methods for Scenes (continued)

10 Alice in Action with Java10 Methods for Scenes (continued)

11 Alice in Action with Java11 Methods for Shots Scenes can be divided into shots Shots can be further divided into pieces Reasons for using scenes, shots, and pieces –To create a program that reflects the user story –To create a program that has a modular design Example of a scheme using scenes and shots –Level 1: my_first_method() –Level 2: three methods for three scenes –Level 3: four methods for four shots in Scene 2

12 Alice in Action with Java12 Methods for Shots (continued) Implementing the scheme –Test each shot in Scene 2 using a say() method –Call the four shot methods from playScene2() –Call three scene methods from my_first_method() Structure diagram reflects organization of user story All objects added to world become part of world Scene and shot messages are stored in the world World method: affects behavior of multiple objects

13 Alice in Action with Java13 Methods for Shots (continued)

14 Alice in Action with Java14 Methods for Shots (continued)

15 Alice in Action with Java15 Object Methods for Object Behaviors Object method: defines behavior for a single object –Illustration : flapWings() should be sent to a dragon Comments: explanatory remark ignored by Alice Example 1: Telling a Dragon to Flap its Wings –Add a dragon object to the world –Select dragon from object tree and click methods tab –Click create new method and enter flapWings –Send roll() messages to each of the dragon’s wings –Invoke flapWings() from my_first_method() –Add comments to the flapWings() method

16 Alice in Action with Java16 Object Methods for Object Behaviors (continued)

17 Alice in Action with Java17 Object Methods for Object Behaviors (continued)

18 Alice in Action with Java18 Object Methods for Object Behaviors (continued) Example 2: Telling a Toy Soldier to March –Four actions correspond to four steps for march() 1 marchLeft; 2 marchRight; 3 marchRight; 4 marchLeft. –Define marchLeft() and marchRight() methods These methods produce reverse behaviors –Incorporate new methods into march() –Call march() four times from my_first_method()

19 Alice in Action with Java19 Object Methods for Object Behaviors (continued)

20 Alice in Action with Java20 Object Methods for Object Behaviors (continued)

21 Alice in Action with Java21 Alice Tip: Reusing Your Work Copy and past techniques speed up development How to use make copy to duplicate statements –Right-click bar in editing area containing method –Select make copy Example using make copy –Refer to my_first_method() in Toy Soldier program –Copy three march() statements from first march()

22 Alice in Action with Java22 Alice Tip: Reusing Your Work (continued)

23 Alice in Action with Java23 Using the Clipboard Alice clipboard –Used to copy and paste all statement types –Located in the events area Using Alice clipboard in Toy Soldier program –Drag doInOrder in my_first_method() to clipboard –Create scene1() method –Drag statement in clipboard to editing area –Drop statement in the scene1() method Only one statement may be placed in the clipboard You can increase the number of available clipboards

24 Alice in Action with Java24 Using the Clipboard (continued)

25 Alice in Action with Java25 Using the Clipboard (continued)

26 Alice in Action with Java26 Reusing an Object in a Different World Alice lets you reuse objects in different worlds Reusing operation involves save and import tasks How to save the dragon object –Rename the dragon object flappingDragon –Right-click flappingDragon, select save object… –Navigate to appropriate storage location in the directory –Click the Save button How to import an object into a new world –Open new world and choose Import from File menu –Navigate to object location and select.a2c file

27 Alice in Action with Java27 Reusing an Object in a Different World (continued)

28 Alice in Action with Java28 Reusing an Object in a Different World (continued)

29 Alice in Action with Java29 Alice Tip: Using Dummies Review –Scenes comprise shots –Shots are filmed with the camera in a given position –Alice places a camera object in every world Two techniques for shifting position of camera –Use set of motion-related messages, such as move() –Use an invisible marker called a dummy

30 Alice in Action with Java30 Dummies Dummy: invisible marker with a point of view Dummies are used to change a camera’s position Description of a scene that will use dummies –Wizard intervenes to prevent trolls from taking a castle –Camera changes position for each of three shots –Story conforms to structure in Figure 2-11 (less Shot 4) Setting up the first shot of Scene 2 –Add castle, wizard, and trolls to build the scene –Click more controls button and then drop a dummy –Go to object tree and rename dummy scene2Shot1

31 Alice in Action with Java31 Dummies (continued)

32 Alice in Action with Java32 Dummies (continued)

33 Alice in Action with Java33 Dummies (continued) Setting up the second shot of Scene 2 –Using camera controls, zoom in on the wizard –Press the drop dummy at camera button –Rename the second dummy, scene2Shot2 Setting up the third shot of Scene 3 –First dummy will be reused for this shot After dummies are inserted they will be programmed

34 Alice in Action with Java34 Dummies (continued)

35 Alice in Action with Java35 Using setPointOfView() to Control the Camera obj.setPointOfView(obj2) –Changes the position of obj to obj2 –Example: camera.setPointOfView(aDummy) Adding code to the first shot of Scene 2 –Drag a doInOrder statement to the editing area –Click on camera object in the object tree –Drag setPointOfView() to the editing area Select scene2Shot1 dummy as target and 0 duration –Add say() statements for each of the trolls –Add a comment to explain the purpose of the method

36 Alice in Action with Java36 Using setPointOfView() to Control the Camera (continued)

37 Alice in Action with Java37 Using setPointOfView() to Control the Camera (continued)

38 Alice in Action with Java38 Using setPointOfView() to Control the Camera (continued) Adding code to the second shot of Scene 2 –Set the opacity of the wizard to 0 in properties pane –Drag wizard ’s opacity property to editing area Set the opacity to 1 in the set() method –Set the camera ’s point of view to scene2Shot2 –Add a say() statement for the wizard Adding code to the third shot of Scene 2 –Reset camera’s point of view to scene2Shot1 –Point the three trolls at the wizard Set message’s onlyAffectYaw attribute to true

39 Alice in Action with Java39 Using setPointOfView() to Control the Camera (continued)

40 Alice in Action with Java40 Using setPointOfView() to Control the Camera (continued)

41 Alice in Action with Java41 Thinking in 3D Learn about 3D movement to work in Alice Object’s position –Determines object’s location in the 3D world Object’s orientation –Determines the way an object is facing

42 Alice in Action with Java42 An Object’s Position Three axes are used to define the world space –LEFT-RIGHT (LR): world’s width dimension –UP-DOWN (UD): world’s height dimension –FORWARD-BACKWARD (FB): world’s depth Three values specify object’s position in the world –lr: point along the LR axis –ud: point along the UD axis –fb: point along the FB axis Change an object’s position using move() –Directional values given with respect to object’s axes

43 Alice in Action with Java43 An Object’s Position (continued)

44 Alice in Action with Java44 An Object’s Position (continued)

45 Alice in Action with Java45 An Object's Orientation Combines yaw, pitch, and roll (provides direction) Yaw: amount of object’s rotation about the UD-axis –Example: turn(RIGHT, 0.25) Pitch: amount of object’s rotation about the LR-axis –Example: turn(FORWARD, 0.25) Roll: amount of object’s rotation about the FB-axis –Example: roll(LEFT, 0.25)

46 Alice in Action with Java46 An Object's Orientation (continued)

47 Alice in Action with Java47 An Object's Orientation (continued)

48 Alice in Action with Java48 An Object's Orientation (continued)

49 Alice in Action with Java49 Point of View Combines object’s position and orientation Six values in point of view: [(lr, ud, fb),(yaw, pitch, roll)] –Six values correspond to six degrees of freedom Methods used to change six values –move(), turn(), and roll() Method used to change point of view –setPointOfView()

50 Alice in Action with Java50 Summary Divide and conquer approach: decomposing a user story into scenes and shots Define methods to support modular design and provide advanced operations World methods: messages sent to the world Object methods: define a behavior for a single object Comments: remarks that explain program statements

51 Alice in Action with Java51 Summary (continued) Alice clipboard: stores a copy of any statement Dummy: invisible marker with position and orientation (a point of view) Object’s position: location specified using three coordinate axes Object’s orientation comprises yaw, pitch, and roll An Alice object has six degrees of freedom


Download ppt "Alice in Action with Java Chapter 2 Methods. Alice in Action with Java2 Objectives Build world-level methods to help organize a story into scenes and."

Similar presentations


Ads by Google