


| 406 ΧΡΗΣΤΕΣ ΕΙΝΑΙ ONLINE: | |||||
|
|||||
| Περισσότεροι Online Χρήστες | |||||


16

Τώρα πρέπει να δοθεί κίνηση στην μπάλα. Η θέση ενός αντικειμένου μετράται στους άξονες Χ και Y. Σε αυτό το κομμάτι κώδικα πολλαπλασιάζεται (*) το διάνυσμα της κατεύθυνσης της μπάλας στον Χ άξονα με την ταχύτητά της, και κατόπιν προστίθεται (+) στην τωρινή θέση της μπάλας. Το int στην παρένθεση μετατρέπει το δεκαδικό αποτέλεσμα της πράξης σε ακέραιο, που στη συνέχεια αποθηκεύει ως νέα θέση της μπάλας στον Χ άξονα. Η πρώτη κίνηση της μπάλας θα είναι από τη θέση 100 στην 103 (5 επί 0,7 + 100 = 103), και παρόμοια γίνεται στον άξονα Υ. Δοκιμάστε να τρέξετε το παιχνίδι με το F5.
-----------------------------------------------------------------------------------------
17

Από τα δύο προηγούμενα βήματα θα βγει και η κίνηση της ρακέτας του παίκτη. Ανιχνεύετε εάν το κουμπί με το βελάκι που δείχνει προς τα πάνω είναι πατημένο. Εάν ναι, τότε αφαιρούνται 10 pixels από την κάθετη θέση της ρακέτας σας (leftPaddle.Y), ούτως ώστε να ανεβεί. Επιπλέον, ελέγχετε εάν η ρακέτα βγει εκτός παραθύρου (leftPaddle.Y < 0) και, εάν ναι, την κατεβάζετε στο 0. Με την ίδια λογική, το πάτημα του κουμπιού με το κάτω βελάκι θα κατεβάζει τη ρακέτα προς τα κάτω και θα ελέγχει τη θέση της, μην είναι μεγαλύτερη των 720 pixels. Τρέξτε το παιχνίδι και δοκιμάστε την κίνηση της ρακέτας.
-----------------------------------------------------------------------------------------
18

Ήρθε η ώρα να εισαγάγετε τη νοημοσύνη της ρακέτας του υπολογιστή. Αρχικά ανιχνεύετε εάν το πάνω μέρος της δεξιάς ρακέτας είναι μεγαλύτερο (δηλαδή χαμηλότερα) του πάνω μέρους της μπάλας. Αν αυτό ισχύει, τότε η ρακέτα βρίσκεται κάτω από την μπάλα, και αφαιρούνται 10 pixels από τον κάθετο άξονά της, για να κινηθεί προς τα πάνω. Αυτά τα 10 pixels είναι η ταχύτητα της ρακέτας.
Επίσης, προσθέσαμε άλλη μία συνθήκη, ώστε να μη φεύγει εκτός οθόνης. Με την ίδια λογική προσθέτουμε κώδικα που θα ελέγχει εάν η ρακέτα βρίσκεται πάνω από την μπάλα. Αν τώρα τρέξουμε το παιχνίδι, θα δούμε τη ρακέτα να προσπαθεί να ακολουθήσει την μπάλα.
-----------------------------------------------------------------------------------------
19

Ήρθε η ώρα της μπάλας να συγκρούεται με τους τοίχους. Η λογική είναι η ίδια με τις ρακέτες, μόνο που εδώ θα προσθέσετε ήχους και σκορ. Αν η άνω πλευρά της μπάλας χτυπήσει στο πάνω τοίχωμα (ball.Top < 0), τότε αλλάζετε την κατεύθυνσή της στον Υ άξονα, ούτως ώστε να κατευθυνθεί προς τα κάτω. Αν η δεξιά πλευρά της χτυπήσει στο δεξιό τοίχωμα (ball.Right > viewWidth), τότε παίρνει έναν πόντο ο παίκτης, παίζει ένας εύθυμος ήχος, επιστρέφει η ταχύτητα της μπάλας στην αρχική της, και της αλλάζετε κατεύθυνση. Παρόμοια είναι η λογική με το αριστερό και κάτω τοίχωμα. Το μόνο που απομένει πια είναι η απόκρουση της μπάλας από τις ρακέτες.
-----------------------------------------------------------------------------------------
20

Σε κάθε γεωμετρικό αντικείμενο το XNA προσθέτει διάφορες λειτουργίες. Μία από αυτές είναι η Intersect(), που ανιχνεύει την επαφή με άλλο γεωμετρικό αντικείμενο. Συγκεκριμένα, στο αντικείμενο ball προσθέτετε τη λειτουργία Intersect(), με παράμετρο την αριστερή ρακέτα.
Όταν αυτή η λειτουργία ενεργοποιηθεί, τότε ο κώδικας ελέγχει αν η μπάλα έρχεται ή φεύγει (μπορεί να έχει ήδη μπει πόντος, και μετά να υπάρξει επαφή). Εάν πράγματι η ρακέτα έχει αποκρούσει την μπάλα, τότε της αντιστρέφετε την κίνηση, αυξάνετε την ταχύτητα της μπάλας επί 1.1 (για αυτό έπρεπε η μεταβλητή να είναι δεκαδικός αριθμός), και παίζει ο ήχος της επαφής με τη ρακέτα. Τώρα πια το παιχνίδι είναι playable.
-----------------------------------------------------------------------------------------
21

Τώρα που το παιχνίδι μας είναι έτοιμο, δεν έχετε παρά να το μετατρέψετε σε εκτελέσιμο αρχείο, ούτως ώστε να μπορείτε να το πάρετε μαζί σας και να το μοιράσετε. Για να γίνει αυτό, επιλέγετε την επιλογή Build και πατάτε Build Solution. Η διαδικασία ίσως πάρει λίγη ώρα. Το παιχνίδι σας βρίσκεται στην τοποθεσία ..\Έγγραφα (Vista) ή Τα έγγραφά μου (XP)\Visual Studio 2008\Projects\MyPong\MyPong\bin\x86\Debug\, και δεν έχετε παρά να διασκεδάσετε με τη δημιουργία σας ή να τη βελτιώσετε ακόμα περισσότερο, π.χ. προσθέτοντας ήχους στην επαφή με τα τοιχώματα ή περισσότερες ρακέτες. Θα χαρούμε να δούμε τις δημιουργίες σας.
...tha mporousa na milousa me kapoion gia apories kai lipa panw se auto... ...Teleia protoboulia...!!! ;)
Βελτιωμένη έκδοση μιας ήδη εξαιρετικής μηχανής
Δοκιμή Χαρακτηριστικά Lab Report Τιμές Απόψεις χρηστών
Ιδανική compact μηχανή για “επικίνδυνες αποστολές” και καθαρές φωτογραφίες
Δοκιμή Χαρακτηριστικά Lab Report Τιμές Απόψεις χρηστών
Πλούσια σε αυτόματες λειτουργίες, θα ενθουσιάσει τον αρχάριο με την ευελιξία της
Δοκιμή Χαρακτηριστικά Lab Report Τιμές Απόψεις χρηστών
Μια ιδιαίτερα αξιόλογη super zoom, με καλά χαρακτηριστικά αλλά και αρκετά αδύναμα σημεία
Δοκιμή Χαρακτηριστικά Lab Report Τιμές Απόψεις χρηστών
Μια φοβερή μηχανή πρακτικά ισάξια της Canon PowerShot SX1 IS, και μάλιστα με πιο καθαρές φωτογραφίες. Ακόμη το σκέφτεστε;
Δοκιμή Χαρακτηριστικά Lab Report Τιμές Απόψεις χρηστών


Δηµιουργήστε µαζί µας ένα απλό αλλά όµορφο site από το µηδέν, για να προωθήσετε την επιχείρησή σας (ή ό,τι άλλο επιθυµείτε), χωρίς να ταλαιπωρηθείτε µε περιττό κώδικα. ΟΛΟΚΛΗΡΩΣΗ: ΣΕ 20 λεπτά, ΜΕ 14 ΒΗΜΑΤΑ
ΕΠΙΠΕΔΟ ΔΥΣΚΟΛΙΑΣ:




Καταχωρίστε τις υποχρεώσεις σας στη δικτυακή υπηρεσία Remember The Milk και οργανώστε καλύτερα το χρόνο και τις ευθύνες σας. ΟΛΟΚΛΗΡΩΣΗ: ΣΕ 20 λεπτά, ΜΕ 10 ΒΗΜΑΤΑ
ΕΠΙΠΕΔΟ ΔΥΣΚΟΛΙΑΣ:




Ενεργοποιήστε μία κρυφή παράμετρο “αναγκάζοντας” την τελευταία δοκιμαστική έκδοση του Firefox να συνεργαστεί με τα add-ons σας. ΟΛΟΚΛΗΡΩΣΗ: ΣΕ 15 Λεπτά, ΜΕ 8 ΒΗΜΑΤΑ
ΕΠΙΠΕΔΟ ΔΥΣΚΟΛΙΑΣ:






















































Η ιδέα του παιχνιδιού αν και κατά μεγάλο βαθμό διαφοροποιημένη προέρχεται από αυτό το <a href="http://videogameslab.wordpress.com/index/">blog</a>. Γενικότερα εκεί θα βρεις, στα ελληνικά, αρκετές πληροφορίες αν ενδιαφέρεσαι.