Objects First With Java

advertisement

Greenfoot

Lecture 4. Greenfoot 1

Programming simulations and games in Java

Pablo Romero, Department of Informatics

Lecture plan

 Greenfoot in action

 The Wombats scenario

 Modifying the code

* Greenfoot Designed and implemented at the University of Kent and

Deakin University. Copyright held by Poul Henriksen and Michael

Koelling. Slides based on those by Eueung Mulyana

Lecture 4. Greenfoot 2 Pablo Romero, Department of Informatics

Greenfoot

Lecture 4. Greenfoot 3 Pablo Romero, Department of Informatics

Greenfoot

Lecture 4. Greenfoot 4 Pablo Romero, Department of Informatics

Looking at the classes

Lecture 4. Greenfoot 5 Pablo Romero, Department of Informatics

The Wombat class import necessary packages class header;

Wombat is a subclass from Actor data (constants and variables) class constructor and methods

Lecture 4. Greenfoot 6 Pablo Romero, Department of Informatics

Constructor and leaf methods constructor  initialising direction and leavesEaten is there any Leaf object in my position?

this method is inherited from the superclass Actor remove that Leaf object update the variable leavesEaten

Lecture 4. Greenfoot 7 Pablo Romero, Department of Informatics

The act method if you find leaves, eat !

if you don‘t find leaves, but you can move forward, then move!

if you don‘t find leaves and you also cannot move, then turn to the left!

Lecture 4. Greenfoot 8 Pablo Romero, Department of Informatics

The turnLeft method change direction 90 degrees to the left

Lecture 4. Greenfoot 9 Pablo Romero, Department of Informatics

The setDirection method this method is inherited from the superclass Actor

Lecture 4. Greenfoot 10 Pablo Romero, Department of Informatics

The move method if object reaches one of the borders, do nothing!

the object moves forward; depends on its direction setLocation() is inherited from Actor

Lecture 4. Greenfoot 11 Pablo Romero, Department of Informatics

The canMove method

Lecture 4. Greenfoot 12 Pablo Romero, Department of Informatics

The canMove method these methods are inherited from Actor new coordinate if the object moves forward; depends on its direction

Lecture 4. Greenfoot 13 checks if the object reaches the edges of the world

Pablo Romero, Department of Informatics

The WombatWorld class

Constructor populate randomLeaves

Lecture 4. Greenfoot 14 Pablo Romero, Department of Informatics

The WombatWorld constructor calls the World constructor sets the background.

the method is inherited from the superclass World cell.jpg

Lecture 4. Greenfoot 15 Pablo Romero, Department of Informatics

The populate method

Lecture 4. Greenfoot 16 Pablo Romero, Department of Informatics

The randomLeaves method

Create a Leaf object at a random position (x,y); repeat howMany times

Lecture 4. Greenfoot 17 Pablo Romero, Department of Informatics

So far

 Greenfoot environment to program simulations and games in java

 World and Actor are system classes

 The wombats program

 Leaf

 Wombat (getLeavesEaten, foundLeaf, eatLeaf, setDirection, turnLeft, canMove, move, act)

 WombatWorld (populate, randomLeaves)

Lecture 4. Greenfoot 18 Pablo Romero, Department of Informatics

Exercise

 How would you change the behaviour of Wombat objects so that instead of always turning left, they could turn to other directions in a random way?

 GreenFoot. getRandomNumber(int limit)

Generates a random number between 0 and limit

Lecture 4. Greenfoot 19 Pablo Romero, Department of Informatics

Exercise

 Create a new method, turnRandom(), that will turn to the left a random number of times. This method will replace the method turnLeft() in the act() method of Wombats. Use the method of the greenfoot library

GreenFoot. getRandomNumber(int limit) that produces a random integer between zero and limit-1.

Lecture 4. Greenfoot 20 Pablo Romero, Department of Informatics

The method turnRandom

Generate a random number between 0 and 3 call turnLeft() turns times

Lecture 4. Greenfoot 21 Pablo Romero, Department of Informatics

The updated method act

Lecture 4. Greenfoot 22 if you find leaves, eat !

if you don‘t find leaves, but you can move forward, then move!

if you don‘t find leaves and you also cannot move, then turn to a random direction !

Pablo Romero, Department of Informatics

Before and after

Lecture 4. Greenfoot 23 Pablo Romero, Department of Informatics

to set the image of an object programmatically

Lecture 4. Greenfoot 24 Pablo Romero, Department of Informatics

Before and after

Lecture 4. Greenfoot 25 Pablo Romero, Department of Informatics

Adding Rocks class image for the Rock class

 New classes can be added easily

 Can import images for classes images available in the wombats scenario folder

Lecture 4. Greenfoot 26

 However wombats can go through rocks

Pablo Romero, Department of Informatics

check all Rock objects in front of you; if there is no Rock object, return true (i.e. okay it‘s clear!) , otherwise return false (i.e. you cannot move!)

Lecture 4. Greenfoot 27 Pablo Romero, Department of Informatics

Summary

 Greenfoot environment to program simulations and games (greenfoot.org)

 Provides an action loop

 World subclasses set up the world

 Actor subclasses define the characters of the game / simulation

 Sophisticated behaviour can be implemented in Java

Lecture 4. Greenfoot 28 Pablo Romero, Department of Informatics

Download