7. Κλικ

Το κεφάλαιο σε pdf.
Κατεβάστε το

Ερωτήσεις Κεφαλαίου
Απαντήστε τις

Στα επόμενα κεφάλαια θα χτίσουμε μια εφαρμογή βήμα-βήμα. Ξεκινώντας από ένα παιχνίδι που ο χρήστης πατάει με το ποντίκι του ένα αστέρι, θα φτάσουμε σε μια εφαρμογή που μπορεί να απασχολήσει τον χρήστη για αρκετό χρόνο. Πρόκειται για την υλοποίηση σε Greenfoot ενός βιντεομαθήματος.

Αρχικά δημιουργούμε έναν κόσμο space και την υποκλάση του Actor με όνομα star και αντίστοιχη εικόνα. Επειδή δεν υπάρχει προεγκατεστημένη εικόνα αστεριού στο περιβάλλον του Greenfoot θα χρησιμοποιήσετε μία εικόνα από το διαδίκτυο. Δώστε ιδιαίτερη σημασία στα πνευματικά δικαιώματα. Αν θέλετε να χρησιμοποιήσετε την ίδια εικόνα που βλέπετε μπορείτε να την βρείτε στη διεύθυνση http://www.clker.com/clipart-24889.html. Το προκαθορισμένο μέγεθος του κόσμου είναι 600x400 pixel (εικονοστοιχεία) το οποίο καλύπτει τις ανάγκες μας για αυτό το παιχνίδι. Τώρα πρέπει να εισάγετε το αστέρι στον κόσμο με την εντολή addObject.

Kώδικας 7.1:

addObject(new star(),300,200);

Το επόμενο βήμα είναι να κάνουμε το αστέρι να εξαφανίζεται όταν γίνει κλικ πάνω του. Αυτό γίνεται με τον παρακάτω κώδικα.

Kώδικας 7.2:

if (Greenfoot.mouseClicked(this))
{
    getWorld().removeObject(this);
}

Η λέξη this αναφέρεται στο αντικείμενο που εκτελεί τον κώδικα. Δηλαδή στη συγκεκριμένη περίπτωση αναφέρεται στο αντικείμενο του αστεριού που υπάρχει στον κόσμο. Το Greenfoot έχει υλοποιήσει μια μέθοδο mouseClicked η οποία μπορεί να ελέγχει αν έχει γίνει κλικ πάνω στο αντικείμενο. Το ίδιο συμβαίνει και με την μέθοδο removeObject(this) η οποία αφαιρεί από τον κόσμο το συγκεκριμένο αντικείμενο. Η μέθοδος removeObject ανήκει σε αντικείμενα της κλάσης World. Το κάθε αντικείμενο μπορεί να αναγνωρίσει τον κόσμο στον οποίο βρίσκεται με την εντολή getWorld(). Το αντικείμενο εξαφανίζεται μόνο αν έχει πατηθεί το Run, αν δεν έχει πατηθεί το Run τότε δεν εκτελούμε το πρόγραμμα αλλά προγραμματίζουμε. Σε αυτή την περίπτωση όταν το ποντίκι του υπολογιστή βρίσκεται πάνω από το αστέρι εμφανίζεται το χεράκι και όχι ο δείκτης.

Επέκταση 7.1

Μπορείτε να εισάγετε ένα δεύτερο αντικείμενο που να εξαφανίζεται όταν πατηθεί με το ποντίκι;
comments powered by Disqus