Page 88 - Linux Inside τ. 11

Σ
υνεχίζοντας την εκμάθηση προγραμματισμού σε Java με
παραδείγματα, ασχολούμαστε με τη δημιουργία ενός
applet. Τα applets είναι εφαρμογές Java οι οποίες δια-
θέτουν ένα σημαντικό πλεονέκτημα. Κάθε applet μπορεί να
εκτελεστεί σε οποιονδήποτε φυλλομετρητή. Η μόνη προϋπό-
θεση είναι ο φυλλομετρητής να έχει εγκατεστημένο το πρό-
σθετο που του επιτρέπει να εκτελεί Java applet. Το πρόσθετο
αυτό διατίθεται μαζί με την εικονική μηχανή Java (Java Virtual
Machine, JVM). Η εκτέλεση ενός applet είναι ανεξάρτητη από
το λειτουργικό σύστημα και την αρχιτεκτονική του επεξεργα-
στή του υπολογιστή. Έτσι, μετά την ανάπτυξη του κώδικα, τη
μεταγλώττιση και τη δημιουργία της διανομής, η εφαρμογή
μας μπορεί να εκτελεστεί στο περιβάλλον ενός φυλλομετρη-
τή οποιουδήποτε υπολογιστή, είτε τοπικά, είτε μέσω Internet.
Με άλλα λόγια, τη δημιουργούμε μία φορά και την τρέχουμε
οπουδήποτε! Ας ξεκινήσουμε λοιπόν.
Το παράδειγμά μας
Στο πνεύμα της θεματολογίας του τεύχους, αναπτύσσουμε
ένα παιχνίδι με μορφή applet. Ένα κλασικό βιντεοπαιχνίδι της
δεκαετίας του 1970 είναι το Breakout της Atari. Το Breakout
συνεχίζει να διατίθεται σε βελτιωμένη έκδοση, κατάλληλα
προσαρμοσμένο στις σύγχρονες απαιτήσεις, ενώ στην πο-
ρεία των χρόνων ενέπνευσε τη δημιουργία πολλών κλώνων
του, όπως το Krakout και το Arkanoid. Σε αυτό βασίζεται και
το δικό μας παιχνίδι, το Toublakia. Η ανάπτυξη ενός παιχνιδι-
ού δεν είναι πάντα εύκολη υπόθεση, αφού εισάγει νέες παρα-
μέτρους στη σχεδίαση του λογισμικού, όπως η αλληλεπίδρα-
ση σε πραγματικό χρόνο, η φυσική της συμπεριφοράς των
αντικειμένων, η ταχύτητα εκτέλεσης του κώδικα κ.ά. Καθώς
λοιπόν ο σκοπός μας είναι η επίδειξη του τρόπου δημιουρ-
γίας ενός applet και του βασικού μηχανισμού λειτουργίας
ενός παιχνιδιού, εστιάζουμε σε αυτά και μόνο. Κρατούμε το
παράδειγμά μας όσο πιο απλό γίνεται, ώστε από τη μία να
μην αναλωθούμε σε περιττά και από την άλλη να προκαλέ-
σουμε τη φαντασία μας να «απογειώσει» νέες, βελτιωμένες
εκδόσεις του παιχνιδιού.
Το παιχνίδι ξεκινά πατώντας το πλήκτρο (επαν)εκκίνηση.
Με το ίδιο πλήκτρο μπορούμε να το επανεκκινήσουμε οποια-
δήποτε στιγμή. Κατά τη διάρκεια του παιχνιδιού μπορούμε να
πατήσουμε το πλήκτρο S του πληκτρολογίου, ώστε να εκτε-
λείται σε αργή κίνηση, μειώνοντας τον αριθμό καρέ που προ-
βάλλονται ανά δευτερόλεπτο. Με το ίδιο πλήκτρο επιστρέ-
φουμε στον κανονικό ρυθμό ανανέωσης της οθόνης του παι-
χνιδιού. Πατώντας τα βελάκια δεξιά και αριστερά, μετακινού-
με τη ρακέτα και προσπαθούμε να αποκρούσουμε το μπαλά-
κι, ώστε να καταστρέψουμε όλα τα τουβλάκια. Το παιχνίδι
τερματίζεται επιτυχώς αν καταστρέψουμε και τα 100 τουβλά-
κια, ενώ χάνουμε αν το μπαλάκι ακουμπήσει 10 φορές στη
βάση της πίστας. Έπειτα από αυτό, ξεκινάμε από την αρχή,
πατώντας πάλι το πλήκτρο (επαν)εκκίνηση.
Ανάπτυξη και εκτέλεση του κώδικα
Αναπτύσσουμε το applet μας μέσα από το περιβάλλον του
Eclipse. Χρησιμοποιούμε το WindowBuilder για τη σχεδίαση
της λιτής γραφικής διεπαφής του, η οποία διαθέτει μόνο μία
ετικέτα, ένα πλήκτρο και τον καμβά σχεδίασης των γραφικών
του παιχνιδιού. Βασιζόμαστε στη βιβλιοθήκη Swing, καθώς η
SWT που χρησιμοποιήσαμε στα προηγούμενα τεύχη δεν εν-
δείκνυται για την κατασκευή applet. Η βιβλιοθήκη SWT έχει το
μειονέκτημα ότι απαιτεί τη μεταγλώττιση της εφαρμογής μας
για κάθε διαφορετικό λειτουργικό σύστημα-στόχο, ενώ στην
περίπτωση ενός applet οι εκτελέσιμες από την JVM κλάσεις
πρέπει να είναι κοινές. Όπως έχουμε εξηγήσει σε προηγού-
μενο τεύχος, η βιβλιοθήκη Swing δεν διατηρεί την αίσθηση
χρήσης του εκάστοτε λειτουργικού συστήματος, αλλά στην
προκειμένη περίπτωση μας ενδιαφέρει το εκτελέσιμο να είναι
κοινό και ανεξάρτητο από το σύστημα εκτέλεσης. Εκμεταλ-
λευόμαστε επίσης τη βιβλιοθήκη AWT για να προσθέσουμε
στο applet το αντικείμενο τύπου καμβά σχεδίασης.
Ανοίγουμε το Eclipse και δημιουργούμε ένα νέο έργο λογι-
σμικού (project) από το μενού File, New, Project... Στο παρά-
θυρο διαλόγου New Project επιλέγουμε Java, Java Project.
Πατούμε το Next, δίνουμε ένα όνομα στο όνομα του project,
Linux Inside
88
Τα applets είναι εφαρμογές Java οι οποίες
διαθέτουν ένα σημαντικό πλεονέκτημα. Κάθε
applet μπορεί να εκτελεστεί σε οποιονδήποτε
φυλλομετρητή.
Του Κωνσταντίνου Δελησταύρου <delistavrou@gmail.com>
Linux Labs - Java
Σε αυτό το μάθημα προγραμματισμού Java
αναπτύσσουμε ένα λιτό παιχνίδι τύπου Breakout, με
μορφή applet, ώστε να τρέχει σε κάθε
φυλλομετρητή.
Εργαλεία:
Java, Eclipse
Δυσκολία:
URL:
Tutorials
Ένα απλό παιχνίδι Java για το Internet
Ο Κωνσταντίνος ασχολείται με τον προγραμματισμό, τα γραφικά και αν βρει χρόνο παίζει παιχνίδια στρατηγικής.
ΚΩΔΙΚΑΣ
ΣΤΟ DVD
Στιγμιότυπο από την ανάπτυξη του παιχνιδιού στο
περιβάλλον του Eclipse.
1