background image

 

 

 

66

 

ΑΝΑΠΤΥΞΗ  3D ΣΚΟΠΕΥΤΙΚΟΥ  ΠΑΙΧΝΙΔΙΟΥ  ΤΡΙΤΟΥ  ΠΡΟΣΩΠΟΥ  ΠΟΛΛΑΠΛΩΝ 
ΠΑΙΚΤΩΝ  ΤΥΠΟΥ  ROGUELITE 

Άμα χάσει ο παίκτης, την στιγμή που θα ξεμείνει από πόντους ζωής, απενεργοποιείται  ο 

χειρισμός του παίκτη, λαμβάνεται το PhotonView για το μοναδικό Id, και στέλνουμε ένα RPC σε 
όλους  τους  παίκτες  για  να  εκτελεστεί  η συνάρτηση  ChangeTag  (Εικόνα  59)  όπου  αλλάζει  το  tag 
από “Player” σε “Spectator” (Εικόνα 60). Ως παράμετρος του RPC στέλνεται το id του παίκτη που 
μόλις  έχασε,  για  να  γνωρίζουν  όλοι  οι  παίκτες,  ποιανού  το  tag  πρέπει  να  αλλάξει.  Μετά 
πετιούνται τα όπλα που κρατούσε για να μην χαθούν, και αφού περάσει ένα χρονικό διάστημα, 
στέλνεται ένα δεύτερο RPC με την συνάρτηση PlayerDeath (Εικόνα 61) σε όλους τους παίκτες για 
να  εμφανιστεί  το  οπτικό  εφέ  όταν  χάνει  ένας  παίκτης.  Οι  συναρτήσεις  ChangeTag()  και 
PlayerDeath() βρίσκονται σε ένα άλλο script, το ThirdPersonController.cs. Τέλος, εμφανίζονται τα 
αποτελέσματα στον παίκτη που έχασε.  Στην περίπτωση που ο παίκτης κερδίσει το παιχνίδι, δεν 
υπάρχει  ανάγκη  για  κάποιο  συγχρονισμό,  οπότε  αρχίζουν  τα  πυροτεχνήματα  και  η  κατάλληλη 
μουσική τοπικά στον κάθε παίκτη. 

 

 

Εικόνα 59 Συναρτήσεις νίκης και ήττας 

 

Εικόνα 60 Μεταβολή του tag του αντικειμένου σε Spectator