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