2. Disclaimer
This document is intended to give a beginner an introductory
material for the Greenfoot system. Greenfoot is a software
framework made by Poul Henriksen and Michael Koelling at
University of Kent / Deakin University. More information can be
found at http://www.greenfoot.org
This document is available „AS IS“ free of charge for personal use
and non-commercial redistribution. It may not be sold for profit or
included in other packages which are sold for profit without written
authorisation. This document is distributed in the hope that it will
be useful, but WITHOUT ANY WARRANTY; your use of the
document is at your sole risk. Reusing and modifying (part of) this
document is allowed, as long as you state explicitly that your work is
based on the original document produced by the copyright holder:
Eueung Mulyana. The author can be contacted via
eueung-[at]-yahoo.com (http://kakihijau.googlepages.com).
Introduction to Greenfoot 2
Eueung Mulyana | kakihijau.googlepages.com
3. Introduction
„Greenfoot is a software tool designed to let beginners
get experience with object-oriented programming. It
supports development of graphical applications in the
Java™ Programming Language“
Designed and implemented at the University of Kent and
Deakin University
Copyright held by Poul Henriksen and Michael Koelling
More information at http://www.greenfoot.org
Part of the content of these slides is based on the
Greenfoot Tutorial made by Michael Koelling,
publicly accesible at the website
Introduction to Greenfoot 3
Eueung Mulyana | kakihijau.googlepages.com
6. Visual Interface
Consists of 3 main parts
The world
– The large canvas that covers the majority of the window
– Has a title e.g. WombatWorld
– The enviroment („the world“) where objects exist
Class display
– Contains all Java classes involved in the scenario
– 3 groups: World, Actor and other classes
Execution controls
– Controls the action of each object: the „Act“ button
– Controls simulation: „Run“, „Pause“, slider
– Resets the scenario
Introduction to Greenfoot 6
Eueung Mulyana | kakihijau.googlepages.com
7. Creating Objects (1)
(Left-)Click on the Wombat or Leaf class to make it
active
To create and place an object into the world :
– Activate a class then shift+click somewhere in the World
– Right-click a class (e.g. Wombat class) to open the class context
menu, select the „New Wombat()“ item then click somewhere in
the World
Introduction to Greenfoot 7
Eueung Mulyana | kakihijau.googlepages.com
8. Creating Objects (2)
Creating 3 objects and placing Class
them into the World context menu
Introduction to Greenfoot 8
Eueung Mulyana | kakihijau.googlepages.com
9. Interaction with Objects (1)
Methods of an object
can directly be invoked
„A method is a single
action that an object
can perform“
Right-click on one
object to show its
(object) context menu,
where you can select a
method to ask the
object to do
„something“
turnleft() move() Introduction to Greenfoot 9
Eueung Mulyana | kakihijau.googlepages.com
10. Interaction with Objects (2)
The world where the wombats live
(WombatWorld) is actually an
object, too
But there may exist only one World
object at a time
It functions as a container for Actor
objects (e.g. Wombat, Leaf etc.)
Single method invocation is still
possible for the World object; just
right-click the title „WombatWorld“
and select a method from the menu
Introduction to Greenfoot 10
Eueung Mulyana | kakihijau.googlepages.com
11. Interaction with Objects (3)
populate() randomLeaves()
Introduction to Greenfoot 11
Eueung Mulyana | kakihijau.googlepages.com
12. Interaction with Objects (4)
A method may have one or more parameters
You will be requested to give value(s) of the parameter(s)
when you invoke such a method
Try the method setDirection() from a Wombat object
or the method randomLeaves() from the
WombatWorld
A method may also return one value (or reference to an
object) if it is invoked
Try foundLeaf() or getLeavesEaten() from a Wombat
object
Introduction to Greenfoot 12
Eueung Mulyana | kakihijau.googlepages.com
13. Removing Objects (1)
An object can be removed by selecting item „Remove“
from the object context menu
Clicking the „Reset“ button or creating a new World
object from the class context menu may remove all
objects; however it actually depends on the constructor
implementation of the World class (*)
Introduction to Greenfoot 13
Eueung Mulyana | kakihijau.googlepages.com
15. Objects‘ Action
Each Actor object has a special method called act()
Pressing the button „Act“ on the control panel means
asking Greenfoot to execute act() method for all objects
in the world
An object acts by doing „whatever it wants to do“ e.g.:
– Wombats move forward, if they find a leaf in their path, they will
eat it
– Leaves do nothing
The action depends actually on how act() method is
defined; that is, we can program object behaviors!!
Introduction to Greenfoot 15
Eueung Mulyana | kakihijau.googlepages.com
16. Simulation „Run“
A scenario can be run by clicking the „Run“ button
This equivalent to clicking the „Act“ button over and over
again very quickly
The slider next to the „Act“ and „Run“ buttons sets the
„running/simulation“ speed
Make an experiment with scenario wombats
– Click „Reset“ if you have already some objects
– Select Populate() from the WombatWorld menu
– Click „Run“
Introduction to Greenfoot 16
Eueung Mulyana | kakihijau.googlepages.com
18. Scenario plane (1)
Choose „Open ...“ from the „Scenario“
menu and select the plane scenario
from the Greenfoot sample scenarios
Press the „Compile all“ button, if
necessary
Instantiate a Plane object and place
somewhere in the world
Run the scenario by pressing „Run“
Try to drag the ControlKnob object
and observe the result
Introduction to Greenfoot 18
Eueung Mulyana | kakihijau.googlepages.com
21. Scenario turtleGraphics (1)
Choose „Open ...“ from the „Scenario“ menu and select
the turtleGraphics scenario from the Greenfoot sample
scenarios
Press the „Compile all“ button, if necessary
Instantiate several turtle objects (CircleTurtle,
SquareTurtle, FlowerTurtle and SpiralTurtle) and
place somewhere in the world
Run the scenario by pressing „Run“
Observe the result
Introduction to Greenfoot 21
Eueung Mulyana | kakihijau.googlepages.com
23. Scenario ants (1)
Choose „Open ...“ from the „Scenario“ menu and select
the ants scenario from the Greenfoot sample scenarios
Press the „Compile all“ button, if necessary
By default (standard Greenfoot 1.3 distribution) you will
have several objects, which are actually formed together
as the World object is created; these objects are instances
of the class AntHill and Food; other objects will be
created „on-the-fly“
Run the scenario by pressing „Run“
Observe the result
Introduction to Greenfoot 23
Eueung Mulyana | kakihijau.googlepages.com
24. Scenario ants (2)
Introduction to Greenfoot 24
Eueung Mulyana | kakihijau.googlepages.com
25. Scenario lunarlander (1)
Choose „Open ...“ from the „Scenario“ menu and select
the lunarlander scenario from the Greenfoot sample
scenarios
Press the „Compile all“ button, if necessary
By default you will have a Lander object, which is
actually formed together as the World object is created
Now you are ready to play the game; run the scenario by
pressing „Run“
The rocket thrust can be controlled by pressing the
„down“ key on the keyboard
Introduction to Greenfoot 25
Eueung Mulyana | kakihijau.googlepages.com