background image

 

 

 

86

 

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

 

Το  script  EnemyAI.cs  ρυθμίζει  την  συμπεριφορά  των  εχθρών,  όπως  τον  προορισμό  τους, 

την  κίνησή  τους  και  την  επίθεση.  Μέσα  στην συνάρτηση  της  Update  (Εικόνα  100)  ,  μόνο  ο  host  
ελέγχει  αν  η  συμπεριφορά  του  εχθρού  ισούται  με  0  και  αν  ισχύει  καλείται  η  συνάρτηση 
SeekTarget().  Μετά  υπολογίζεται  η  περιστροφή  του  εχθρού,  το  animation  που  πρέπει  να 
εκτελείται  και  η  περίπτωση  που  ο  εχθρός  πρέπει  να  επιτεθεί.  Στην  περίπτωση  της  επίθεσης 
γίνονται έλεγχοι πολλών συνθηκών και τελικά μπορούν να αποσταλούν δύο είδη RPC ανάλογα με 
το είδος της επίθεσης του εχθρού, αν επιτίθεται από κοντά ή μακριά. Οι συναρτήσεις αυτές είναι 
οι  StartMeleeAttack()  και  StartFlyingRangedAttack()  αντίστοιχα.  Στην  περίπτωση  της 
StartFLyingRangedAttack()  στέλνεται  και  η  παράμετρος  της  κατεύθυνσης  από  την  σφαίρα  του 
εχθρού. 
 

 

Εικόνα 100 Γενική συμπεριφορά εχθρών 

 

Στην συνάρτηση SeekTarget() (Εικόνα 101) γίνεται η εύρεση των παικτών και υπολογίζεται 

η ελάχιστη απόσταση μεταξύ τους, για να οριστεί ο προορισμός των εχθρών. Ελέγχεται ο στόχος 
των  εχθρών  ώστε  μόνο  όταν  ένας  διαφορετικός  παίκτης  πλησιάσει  πιο  κοντά,  να στέλνεται  ένα 
RPC  προς  όλους  τους  παίκτες  μέσω  του  διακομιστή  για  την  εκτέλεση  της  συνάρτησης 
RPC_SetDestination() με την παράμετρο το id του παίκτη που πρέπει να κυνηγήσει ο εχθρός.