Methods (part a) Alice In Ac4on, Ch 2 Slides Credit: - PDF document
CS101 Lecture 21 Methods (part a) Alice In Ac4on, Ch 2 Slides Credit: Joel Adams, Alice in Action With thanks to John Magee for his guidance about these materials Objec4ves Build
CS101 Lecture 21 Methods ¡(part ¡a) ¡ Alice ¡In ¡Ac4on, ¡Ch ¡2 ¡ ¡ ¡ Slides Credit: Joel Adams, Alice in Action With thanks to John Magee for his guidance about these materials Objec4ves ¡ • Build ¡world-‑level ¡methods ¡to ¡help ¡organize ¡a ¡ story ¡into ¡scenes ¡and ¡shots ¡ • Use ¡dummies ¡to ¡reposi4on ¡the ¡camera ¡for ¡ different ¡points ¡of ¡views ¡within ¡a ¡scene ¡ ¡ • Understand ¡how ¡an ¡object’s ¡ posi%on , ¡ orienta%on , ¡and ¡ point ¡of ¡view ¡ are ¡described, ¡ changed ¡and ¡determined ¡ • Documen4ng ¡your ¡code ¡with ¡comments. ¡ • Understand ¡Flow ¡of ¡Control ¡with ¡methods. ¡ 2 1
Methods ¡ • Methods ¡ ¡ – behavior-‑producing ¡messages ¡(from ¡the ¡sender’s ¡view) ¡ – behaviors/ac4ons ¡in ¡response ¡to ¡requests, ¡messages ¡ (from ¡the ¡recipient’s ¡view) ¡ – E.g. ¡in ¡world.my_first_method: ¡whiteRabbit.pointat(camera) ¡ ¡ • Conven4on ¡for ¡naming ¡methods ¡ – Name ¡should ¡be ¡a ¡verb ¡or ¡verb ¡phrase ¡ – Name ¡should ¡describe ¡what ¡the ¡method ¡does ¡ • A ¡method ¡is ¡a ¡way ¡to ¡name ¡a ¡block ¡of ¡code. ¡ 3 Methods ¡ • Objects ¡have ¡predefined ¡methods ¡for ¡common ¡tasks ¡ ¡ • Methods ¡may ¡also ¡be ¡created ¡by ¡Alice ¡developers ¡ – Two ¡main ¡reasons ¡for ¡building ¡your ¡own ¡methods ¡ • To ¡provide ¡an ¡object ¡with ¡addi4onal ¡behaviors ¡(last ¡week) ¡ • To ¡organize ¡your ¡story ¡and ¡program ¡into ¡more ¡manageable ¡pieces ¡ (Today) ¡ • Divide ¡and ¡conquer ¡methodology ¡ – Break ¡a ¡big ¡problem ¡into ¡smaller ¡problems ¡ – Solve ¡each ¡of ¡the ¡smaller ¡problems ¡ – Combine ¡the ¡solu4ons ¡of ¡ ¡smaller ¡problems ¡into ¡a ¡solu4on ¡for ¡ the ¡original, ¡big ¡problem ¡ • Hiding ¡complex ¡details ¡with ¡abstrac4on. ¡ ¡ Alice in Action with Java 4 2
World ¡Methods ¡for ¡Scenes ¡and ¡Shots ¡ ¡ • User ¡stories ¡can ¡be ¡divided ¡into ¡scenes ¡and ¡shots ¡ – Scene: ¡segment ¡of ¡a ¡story, ¡usually ¡set ¡in ¡one ¡loca4on ¡ ¡ – Shot: ¡part ¡of ¡a ¡scene, ¡normally ¡from ¡one ¡fixed ¡camera ¡view ¡ • Use ¡mul4ple ¡scenes ¡and ¡shots ¡to ¡create ¡a ¡program ¡that ¡reflects ¡the ¡user ¡ story ¡and ¡ ¡has ¡a ¡modular ¡design ¡ • ¡ ¡ ¡ Two shots of one scene 5 Methods ¡for ¡Scenes ¡ • Example: ¡develop ¡a ¡user ¡story ¡with ¡three ¡scenes ¡ • Crea4ng ¡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 3
Methods for Scenes (continued) Alice in Action with Java 7 Methods for Scenes (continued) Alice in Action with Java 8 4
Methods ¡for ¡Scenes ¡(con4nued) ¡ • 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() Alice in Action with Java 9 Methods for Scenes (continued) Alice in Action with Java 10 5
Methods for Scenes (continued) 11 Methods ¡for ¡Shots ¡ • 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 6
Methods ¡for ¡Shots ¡(con4nued) ¡ • Implemen4ng ¡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 ¡organiza4on ¡of ¡user ¡ story ¡ • Scene ¡and ¡shot ¡messages ¡are ¡stored ¡in ¡the ¡ world Alice in Action with Java 13 Methods for Shots (continued) Alice in Action with Java 14 7
World ¡and ¡Object ¡Methods ¡ • World ¡method: ¡affects ¡behavior ¡of ¡all ¡objects ¡in ¡ a ¡world ¡ • Object ¡method: ¡defines ¡behavior ¡for ¡a ¡single ¡ object ¡(that ¡may ¡have ¡mul4ple ¡parts) ¡ – examples : flapWings() for ¡dragon, ¡hop() ¡for ¡a ¡ rabbit… ¡ Alice in Action with Java 15 Program ¡Documenta4on ¡ • Standalone ¡readme, ¡manual… ¡ • Comments: ¡explanatory ¡remark ¡ignored ¡by ¡ Alice ¡ – an ¡integral ¡part ¡of ¡code ¡ ¡ – Used ¡to ¡describe ¡what ¡code ¡does ¡at ¡various ¡levels ¡ • the ¡overall ¡program, ¡individual ¡methods, ¡blocks ¡of ¡ statements…. ¡ – Useful ¡for ¡collaborators ¡and ¡developers ¡themselves ¡ – ¡Important ¡part ¡of ¡programming ¡ • ¡Also ¡a ¡component ¡evaluated ¡for ¡your ¡program ¡grades ¡ Alice in Action with Java 16 8
Alice ¡Tip: ¡Using ¡Dummies ¡ • Review ¡ ¡ ¡ – Scenes ¡comprise ¡shots ¡ – Shots ¡are ¡filmed ¡with ¡the ¡camera ¡in ¡a ¡given ¡ posi4on ¡ – Alice ¡places ¡a ¡ camera ¡object ¡in ¡every ¡world ¡ • Two ¡techniques ¡for ¡shi_ing ¡posi4on ¡of ¡camera ¡ – Use ¡set ¡of ¡mo4on-‑related ¡messages, ¡such ¡as ¡ move () ¡ ¡ – Use ¡an ¡invisible ¡marker ¡called ¡a ¡dummy ¡ 17 Dummies ¡ • Dummy: ¡invisible ¡marker ¡with ¡a ¡point ¡of ¡view ¡ • Dummies ¡are ¡used ¡to ¡change ¡a ¡camera’s ¡posi4on ¡ • Descrip4on ¡of ¡a ¡scene ¡that ¡will ¡use ¡dummies ¡ ¡ – Wizard ¡intervenes ¡to ¡prevent ¡trolls ¡from ¡taking ¡a ¡castle ¡ – Camera ¡changes ¡posi4on ¡for ¡each ¡of ¡three ¡shots ¡ – Story ¡conforms ¡to ¡structure ¡in ¡Figure ¡2-‑11 ¡(less ¡Shot ¡4) ¡ • Seang ¡up ¡the ¡first ¡shot ¡of ¡Scene ¡2 ¡ ¡ – Add ¡ castle , ¡ wizard , ¡and ¡ trolls ¡to ¡build ¡the ¡scene ¡ ¡ – Click ¡ more controls ¡bubon ¡and ¡then ¡drop ¡a ¡dummy ¡ – Go ¡to ¡object ¡tree ¡and ¡rename ¡dummy ¡ scene2Shot1 18 9
Dummies (continued) 19 Dummies (continued) 20 10
Dummies ¡(con4nued) ¡ • Seang ¡up ¡the ¡second ¡shot ¡of ¡Scene ¡2 ¡ – Using ¡ camera ¡controls, ¡zoom ¡in ¡on ¡the ¡ wizard – Press ¡the ¡ drop ¡ dummy ¡ at camera ¡bubon ¡ – Rename ¡the ¡second ¡dummy, ¡ scene2Shot2 • Seang ¡up ¡the ¡third ¡shot ¡of ¡Scene ¡3 ¡ – First ¡dummy ¡will ¡be ¡reused ¡for ¡this ¡shot ¡ • A_er ¡dummies ¡are ¡inserted ¡they ¡will ¡be ¡ programmed ¡ ¡ 21 Dummies (continued) Alice in Action with Java 22 11
Using ¡ setPointOfView() ¡to ¡ Control ¡the ¡Camera ¡ • obj.setPointOfView(obj2) – Changes ¡the ¡posi4on ¡of ¡ obj ¡ to ¡ obj2 – Example: ¡ camera.setPointOfView(aDummy) • Adding ¡code ¡to ¡the ¡first ¡shot ¡of ¡Scene ¡2 ¡ – Drag ¡a ¡ doInOrder statement ¡to ¡the ¡edi4ng ¡area ¡ – Click ¡on ¡camera ¡object ¡in ¡the ¡object ¡tree ¡ – Drag ¡ setPointOfView() to ¡the ¡edi4ng ¡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 ¡ Alice in Action with Java 23 Using setPointOfView() to Control the Camera (continued) Alice in Action with Java 24 12
Recommend
More recommend
Explore More Topics
Stay informed with curated content and fresh updates.