φυλλο εργασιας 6

Download Report

Transcript φυλλο εργασιας 6

ΕΙΔΙΚΑ ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 06
Μεταβλητές για την κίνηση
των καβουριών στον κόσμο
Μεταβλητή για την εικόνα
των καβουριών
Θα ορίσουμε δύο νέες μεταβλητές image1, image2 στις οποίες θα αντιστοιχίσουμε δύο διαφορετικές εικόνες
καβουριών ώστε να δίνεται η αίσθηση της κίνησης.
Ο κώδικας θα είναι ο παρακάτω και θα προστεθεί στον επεξεργαστή της κλάσης Crab
import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
public class Crab extends Actor
{
private GreenfootImage image1;
private GreenfootImage image2;
Οι γραμμές αυτές είναι ο κώδικας που θα προσθέσετε
/**
* Act - do whatever the Crab wants to do. This method is called whenever
* the 'Act' or 'Run' button gets pressed in the environment.
*/
public void act()
{
….
}
… …. ….
2. Στη συνέχεια Μεταγλώττιση > Προσθέστε ένα Crab > δεξί κλικ >Επιθεώρηση και θα δείτε το παρακάτω πλαίσιο
Οι μεταβλητές δεν έχουν
αρχικοποιηθεί και έχουν
την τιμή null
3. Στον κατάλογο images της εφαρμογής modern-crab στο ΜΑΘΗΜΑ 2 προσθέστε την εικόνα crab2.png που θα
βρείτε στο φάκελο του ΜΑΘΗΜΑΤΟΣ 6
4. Στη συνέχεια θα πρέπει να δώσετε τιμές σε αυτές τις μεταβλητές. Για το σκοπό αυτό καλούμε τον κατασκευαστή
(constructor) της κλάσης Crab
public Crab()
{
image1 = new GreenfootImage("crab.png");
image2 = new GreenfootImage("crab2.png");
setImage(image1);
}
Ο κώδικας θα γραφθεί ακριβώς κάτω από τον ορισμό των μεταβλητών.
ΠΡΟΣΘΕΤΕΤΕ ΝΕΟ ΚΩΔΙΚΑ στην κλάση Crab!!!
5. Μπορείτε να κάνετε Επιθεώρηση και να δείτε τις τιμές αυτές
ΔΕΝ ΣΒΗΝΕΤΕ ΚΩΔΙΚΑ απλά
6. Για να έχουν εφαρμογή τα παραπάνω πρέπει να προσθέσουμε κώδικα στη μέθοδο act(). O κώδικας που θα
προσθέσουμε είναι ο εξής
public void act()
{
if (getImage()==image2)
{
setImage(image1);
}
else
{
setImage(image2);
}
// ο κώδικας παραλείπεται
}
Η μέθοδος getImage() θα επιστρέψει την τρέχουσα εικόνα του ηθοποιού. Ο τελεστής == θα κάνει τη σύγκριση αν η
συνθήκη είναι True θα εκτελεστεί η πρόταση If διαφορετικά θα εκτελεστεί η πρόταση else.
7. Τέλος οι εντολές αυτές θα αποτελέσουν μία νέα μέθοδο που θα την ονομάσουμε switchImage()