background image

 

 

 

61

 

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

 

Όταν  οι  παίκτες  είναι  έτοιμοι  να  ξεκινήσουν  το  παιχνίδι,  ο  host  μπορεί  να  το  αρχίσει 

πατώντας  το  κουμπί  “Start  Game”.  To  δωμάτιο  κλείνει  θέτοντας  την  μεταβλητή 
PhotonNetwork.CurrentRoom.IsOpen  σε false,  και  ο  host  αρχίζει  να  φορτώνει  την  νέα  σκηνή  με 
την  συνάρτηση  LoadLevelAsync().  Ταυτόχρονα  στέλνεται  ένα  event  με  κωδικό  το 
ChangeSceneCode  προς  τους  clients,  με  παράμετρο  τον  δείκτη  της  σκηνής,  για  να  εμφανιστεί  η 
οθόνη φόρτωσης σε όλους, αλλά με κάθε παίκτη να έχει την δικιά του μπάρα φόρτωσης. Επίσης 
εκεί καλείται η συνάρτηση LoadClientLevelAsync() (Εικόνα 48) για να φορτώσει η νέα σκηνή στους 
clients.  H  Photon  μας  παρέχει  την  μεταβλητή  PhotonNetwork.LevelLoadingProgress  για  να 
γνωρίζουμε σε πιο στάδιο βρίσκεται η φόρτωση της σκηνής, οπότε την χρησιμοποιούμε για να το 
εμφανίσουμε στους παίκτες με την μορφή της μπάρας φόρτωσης.  
 

 

Εικόνα 48 Εκκίνηση του παιχνιδιού 

Η  συνάρτηση  OnEvent  της  Photon  εκτελείται  όταν  εντοπίζεται  ένα  event  από  το  δίκτυο. 

Γίνεται ανάλυση του κωδικού που στέλνεται μέσω του δικτύου, και αν ισούται με τον κωδικό για 
την αλλαγή σκηνής, τότε εκτελεί  την συνάρτηση LoadClientLevelAsync() (Εικόνα 49). Για να είναι 
εφικτό  ο κώδικας να  λαμβάνει τα events,  είναι απαραίτητο να γίνει η εγγραφή της συνάρτησης 
OnEvent ως ανάκληση (Εικόνα 50).