background image

 

 

 

83

 

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

 

Κατά  την  σύγκρουση  της  σφαίρας,  γίνεται  ο  έλεγχος  του  αντικειμένου  με  τον  οποίο 

συγκρούεται. Στην περίπτωση που η σφαίρα πετύχει κάποιον εχθρό, και εφόσον αναπαραχθούν 
τα  κατάλληλα  οπτικά  εφέ,  αποθηκεύεται  το  script  EnemyStats.cs  του  εχθρού  (Εικόνα  95).  Αν  το 
script υπάρχει, τότε γίνεται ένας επιπλέον έλεγχος, όπου συγκρίνεται ο κάτοχος της σφαίρας με 
τον παίκτη, ώστε μόνο όταν ο κάτοχος της σφαίρας πετυχαίνει τον εχθρό να σταλθεί ένα RPC στο 
PhotonView  του  εχθρού  για  να  κληθεί  η  συνάρτηση  RPC_TakeDamage()  με  παραμέτρους  την 
ζημιά και τον κάτοχο της σφαίρας. Ο έλεγχος αυτός συμβαίνει, για να μην μειώνονται οι πόντοι 
ζωής του εχθρού για κάθε παίκτη που υπάρχει στο παιχνίδι, αλλά μόνο μια φορά, όταν ο κάτοχος 
της σφαίρας πετυχαίνει τον εχθρό.

 

 

 

Εικόνα 95 Σύγκρουση σφαίρας 

 
4.2.4 Συγχρονισμός εχθρών 

 

Οι  εχθροί  δημιουργούνται  και  κυνηγάνε  τους  παίκτες  για  να  τους  χτυπήσουν.  Ο 

συγχρονισμός  τους  γίνεται  κυρίως  από  τον  host  όσον  αφορά  τον  προορισμό  τους,  πότε 
εξαφανίζονται από το περιβάλλον και πότε επιτίθενται. Τα script που συγχρονίζουν τους εχθρούς 
είναι τα: EnemyAI.cs, EnemySpawner.cs και EnemyStats.cs. 

Το  script   EnemyStats.cs  περιέχει  όλα  τα  στατιστικά  του  εχθρού.  Για  την  κλιμάκωση  των 

στατιστικών  αυτών,  στέλνεται  ένα  RPC  από  τις  συναρτήσεις  των  γύρων,  για  να  εκτελεστεί  η 
ScaleStats() με παράμετρο την δυσκολία του γύρου (Εικόνα 96).