background image

5.7 Παίζοντας δικτυακά την εφαρμογή 

[115] 

 

5.7 Παίζοντας δικτυακά την εφαρμογή 

 
Το  δικτυακό  κομμάτι  της  εφαρμογής  βασίστηκε  στη  λογική  του 

απλού  χρήστη.  Μέχρι  τώρα  είδαμε  την  επικοινωνία  μεταξύ  των 
συσκευών  και  τη  δημιουργία  των  πιο  σημαντικών  πακέτων  για  την 
εφαρμογή. 

Η  βασική  διαφορά  στο  δικτυακό  παιχνίδι  είναι  ότι  οι  συσκευές 

μοιράζονται  ένα  κοινό  controller.  Επίσης  αλλάζει  και  η  ροή  του 
παιχνιδιού ανάλογα με την απάντηση του χρήστη. 

Φτάσαμε  μέχρι  τώρα  στην  κατάσταση  “Playing”  για  το  διακομιστή 

και τους πελάτες. Τώρα θα δούμε τη μέθοδο η οποία είναι υπεύθυνη για 
την  εμφάνιση  των  στοιχείων  στην  οθόνη.  Πηγαίνουμε  στον 
“GameViewController” και προσθέτουμε μια μέθοδο τύπου -(void) με το 
όνομα gameDidBegin. Η μέθοδος εμφανίζει στην οθόνη τα ονόματα των 
παικτών,  τις  σωστές  απαντήσεις,  το  χρόνο,  τις  ερωτήσεις  και  τις 
απαντήσεις. Επίσης έχουμε προσθέσει και μια κεντρική ετικέτα η οποία 
μας ενημερώνει κάθε φορά για την κατάσταση του παιχνιδιού. 

Δημιουργούμε  αρχικά  μια  υποκλάση  της  κλάσης  “Packet”  με  το 

όνομα  “PacketQuestions”.  Αυτή  η  υποκλάση  χρησιμοποιείται  για  τη 
μεταφορά της ερώτησης και των απαντήσεων μεταξύ των συσκευών. 

 

Έπειτα,  ο  διακομιστής  περιμένει  να  λάβει  μια  απάντηση  από  τους 

πελάτες  για  την  επιλογή  απάντησης.  Δημιουργούμε  μια  νέα  υποκλάση 
της  κλάσης  “Packet”  με  το  όνομα  “PacketAnswerResponse”.  Αυτό  το 
μήνυμα αποστέλλεται σε όλους τους πελάτες από το διακομιστή, για να 
τους  ενημερώσει  ότι  περιμένει  μια  επιλογή  για  την  απάντηση  της 
ερώτησης. 

 

Το  αντίστοιχο  μήνυμα  απάντησης  για  τους  πελάτες  ονομάζεται 

“PacketClientAnswer”.  Όταν  η  κατάσταση  είναι  ακόμη  “Playing”