Creating a Fancier Chicken to use in several worlds - Inheritance
description
Transcript of Creating a Fancier Chicken to use in several worlds - Inheritance
![Page 1: Creating a Fancier Chicken to use in several worlds - Inheritance](https://reader036.fdocuments.in/reader036/viewer/2022062519/56815295550346895dc0bd0c/html5/thumbnails/1.jpg)
Creating a Fancier Chicken to use in several worlds- Inheritance
Susan RodgerDuke University
June 2009
![Page 2: Creating a Fancier Chicken to use in several worlds - Inheritance](https://reader036.fdocuments.in/reader036/viewer/2022062519/56815295550346895dc0bd0c/html5/thumbnails/2.jpg)
Creating a fancier chicken
• This tutorial shows you how to add methods, change properties, and add events to the chicken to make a fancier/smarter chicken. Then save out this fancier/smarter chicken and read it into another Alice world. All the properties, methods and events will go with this fancier chicken.
• Creating a smarter/fancier chicken is called “inheritance”. The modified chicken has new things it can do, plus it “inherits” what the standard Alice chicken can do.
![Page 3: Creating a Fancier Chicken to use in several worlds - Inheritance](https://reader036.fdocuments.in/reader036/viewer/2022062519/56815295550346895dc0bd0c/html5/thumbnails/3.jpg)
Start - Add a chicken to your world
• Pick any background (I picked grass).
• Add a chicken to your world (in the Animals folder)
• First, we will double the size of the chicken. Right click on the chicken word in the object tree and select “methods”, “resize”, “2”.
![Page 4: Creating a Fancier Chicken to use in several worlds - Inheritance](https://reader036.fdocuments.in/reader036/viewer/2022062519/56815295550346895dc0bd0c/html5/thumbnails/4.jpg)
Change the chicken’s color to
Red• Click on Chicken (in the
object tree), then properties.
• Click on the white color beside the color property and select “red”. By changing the property here, the chicken’s color is changed permanently
![Page 5: Creating a Fancier Chicken to use in several worlds - Inheritance](https://reader036.fdocuments.in/reader036/viewer/2022062519/56815295550346895dc0bd0c/html5/thumbnails/5.jpg)
Now we will create methods for this talented
chicken
• First we will teach him how to jump.
• Under “Chicken”, then “methods”, click on “create new method”
![Page 6: Creating a Fancier Chicken to use in several worlds - Inheritance](https://reader036.fdocuments.in/reader036/viewer/2022062519/56815295550346895dc0bd0c/html5/thumbnails/6.jpg)
Name the method “jump”
• We will now teach the Chicken how to jump.
![Page 7: Creating a Fancier Chicken to use in several worlds - Inheritance](https://reader036.fdocuments.in/reader036/viewer/2022062519/56815295550346895dc0bd0c/html5/thumbnails/7.jpg)
Chicken move up and down 1m
• In the “jump” method, have the chicken move up and down 1 meter.
• How to have the distance to be a choice?• Click on create new parameter on the right
![Page 8: Creating a Fancier Chicken to use in several worlds - Inheritance](https://reader036.fdocuments.in/reader036/viewer/2022062519/56815295550346895dc0bd0c/html5/thumbnails/8.jpg)
Add Distance parameter• Name is
“distance, type is “Number.”
• Then drag “distance” over the “1 meter” in your program
![Page 9: Creating a Fancier Chicken to use in several worlds - Inheritance](https://reader036.fdocuments.in/reader036/viewer/2022062519/56815295550346895dc0bd0c/html5/thumbnails/9.jpg)
The result is:
• In “world.myFirstMethod”, try out the Chicken jump method
![Page 10: Creating a Fancier Chicken to use in several worlds - Inheritance](https://reader036.fdocuments.in/reader036/viewer/2022062519/56815295550346895dc0bd0c/html5/thumbnails/10.jpg)
Add a Flamingo in the world
• In the “Animals” folder, add a flamingo to your world.
• Resize the flamingo by 2.• Write a Chicken method
to go around the flamingo. Click on “chicken” in the object tree, then on the Chicken method tabs, then “create new methods”
![Page 11: Creating a Fancier Chicken to use in several worlds - Inheritance](https://reader036.fdocuments.in/reader036/viewer/2022062519/56815295550346895dc0bd0c/html5/thumbnails/11.jpg)
Name the Chicken method “goAround”• Add code to have chicken go around flamingo
• However, what happens if we save this Chicken and put it in a world with no flamingo? Yikes! Alice will crash!
![Page 12: Creating a Fancier Chicken to use in several worlds - Inheritance](https://reader036.fdocuments.in/reader036/viewer/2022062519/56815295550346895dc0bd0c/html5/thumbnails/12.jpg)
Add an “object”parameter
• Name the parameter “objectToCircle” and select type “object”
![Page 13: Creating a Fancier Chicken to use in several worlds - Inheritance](https://reader036.fdocuments.in/reader036/viewer/2022062519/56815295550346895dc0bd0c/html5/thumbnails/13.jpg)
Replace “flamingo” by clicking and dragging “objectToCircle”over
flamingo • a
![Page 14: Creating a Fancier Chicken to use in several worlds - Inheritance](https://reader036.fdocuments.in/reader036/viewer/2022062519/56815295550346895dc0bd0c/html5/thumbnails/14.jpg)
Try out new code
• In world.myfirstmethod, have the chicken circle around the flamingo.
![Page 15: Creating a Fancier Chicken to use in several worlds - Inheritance](https://reader036.fdocuments.in/reader036/viewer/2022062519/56815295550346895dc0bd0c/html5/thumbnails/15.jpg)
Add a Chicken Event• We will create an event that is a “Chicken”
event• DO NOT click on “Create New Event”!• Instead, click on the word Chicken in the
object tree and drag it into the Event window, then select “when a key is typed”
![Page 16: Creating a Fancier Chicken to use in several worlds - Inheritance](https://reader036.fdocuments.in/reader036/viewer/2022062519/56815295550346895dc0bd0c/html5/thumbnails/16.jpg)
Set up the Chicken Event• Notice the word “Chicken” before the new
event. • Click on “any key” and select “letter”, then “S”• Drag “Chicken turn” into the Nothing and
select right 1 revolution (see next page)
![Page 17: Creating a Fancier Chicken to use in several worlds - Inheritance](https://reader036.fdocuments.in/reader036/viewer/2022062519/56815295550346895dc0bd0c/html5/thumbnails/17.jpg)
Resulting Chicken Event
• Because this event is a “Chicken” event, it will be saved out with the Chicken
• NOTE: If you add a new event for the Chicken, but don’t create it by dragging the object into the event window, then it will default to a world event and will not save out with the Chicken.
![Page 18: Creating a Fancier Chicken to use in several worlds - Inheritance](https://reader036.fdocuments.in/reader036/viewer/2022062519/56815295550346895dc0bd0c/html5/thumbnails/18.jpg)
Let’s rename our talented Chicken
• In the object tree, right click on “Chicken”, select “rename” and rename the Chicken to “TalentedChicken” RESULT:
![Page 19: Creating a Fancier Chicken to use in several worlds - Inheritance](https://reader036.fdocuments.in/reader036/viewer/2022062519/56815295550346895dc0bd0c/html5/thumbnails/19.jpg)
Now save out the TalentedChicken
• In the object tree, right click on “TalentedChicken”, select “save object”
• The object is saved in a file called TalentedChicken.a2c
![Page 20: Creating a Fancier Chicken to use in several worlds - Inheritance](https://reader036.fdocuments.in/reader036/viewer/2022062519/56815295550346895dc0bd0c/html5/thumbnails/20.jpg)
Start a new Alice world with sand
• To put the chicken in this world, click on “File”, then “import”
• Browse to where you stored “TalentedChicken.a2c” and import it into your world.
![Page 21: Creating a Fancier Chicken to use in several worlds - Inheritance](https://reader036.fdocuments.in/reader036/viewer/2022062519/56815295550346895dc0bd0c/html5/thumbnails/21.jpg)
Add Chicken from the local Library • Note the chicken you saved is
red, and twice as big as the Alice Chicken. Also note the methods you wrote, jump and goAround , and the Chicken Event, are also there.
• Note the code you wrote in myFirstMethod is not there! Only items related to Chicken properties and methods are saved with the TalentedChicken
![Page 22: Creating a Fancier Chicken to use in several worlds - Inheritance](https://reader036.fdocuments.in/reader036/viewer/2022062519/56815295550346895dc0bd0c/html5/thumbnails/22.jpg)
Add a cow
• Fill in the code in myFirstMethod to have the chicken jump twice and goAround the cow.