background image

 

 

63 

 

 

Εχθροί 

 

Εικόνα 28.Καταδίωξη από εχθρό 

Στη συνέχεια, υλοποιήθηκε η κλάση Enemies(). Η κλάση αυτή είναι υπεύθυνη για τη 

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

Η  update_animation(self,  delta_time)  οπτικοποιεί  την  κίνηση  του  εχθρού  μέσω 

εναλλαγής των εικόνων animation. Το χρονόμετρο self.animation_timer αυξάνεται με βάση το 

delta_time, δηλαδή τον χρόνο που έχει περάσει από το τελευταίο καρέ. Όταν το χρονόμετρο 

υπερβεί  την  τιμή  self.animation_speed,  η  εικόνα  αλλάζει  (self.current_image_index), 

δημιουργώντας  εφέ  κίνησης,  ενώ  το  self.animation_timer  μηδενίζεται.  Η  χρήση  του  «%» 

εξασφαλίζει την ορθή εναλλαγή των εικόνων, προσδίδοντας ομαλή και ρεαλιστική κίνηση του 

εχθρού. 

 

def update_animation(self, delta_time): 

    self.animation_timer += delta_time 
     if self.animation_timer >= self.animation_speed: 
        self.current_image_index = (self.current_image_index + 1) % len(self.images) 
         self.animation_timer = 0

 

Η collides_with_obstacle(self, target_pos, obstacles) ελέγχει αν ο εχθρός για κάθε νέα 

θέση του (target_pos) συγκρούεται με κάποιο εμπόδιο. Αρχικά, δημιουργείται ένα ορθογώνιο 

(target_rect)  που  ορίζει  την  πιθανή  νέα  θέση  του  εχθρού.  Στη  συνέχεια,  η  colliderect() 

συγκρίνει αυτό το ορθογώνιο με τα ορθογώνια των εμποδίων (obstacle_rect). Εάν εντοπιστεί 

κάποια σύγκρουση, η μέθοδος επιστρέφει True, διαφορετικά επιστρέφει False.