Pygame

3. Pygame hra

3.6. Nepriateľ

Vytvoríme triedu nepriateľ
class nepriatel(object):
    kracaDolava= 
       [pygame.image.load('nepriatelDolava1.png'), 
        pygame.image.load('nepriatelDolava2.png'), 
        pygame.image.load('nepriatelDolava3.png'), 
        pygame.image.load('nepriatelDolava4.png'), 
        pygame.image.load('nepriatelDolava5.png'), 
        pygame.image.load('nepriatelDolava6.png'), 
        pygame.image.load('nepriatelDolava7.png'), 
        pygame.image.load('nepriatelDolava8.png'), 
        pygame.image.load('nepriatelDolava9.png'), 
        pygame.image.load('nepriatelDolava10.png'), 
        pygame.image.load('nepriatelDolava11.png')]
    kracaDoprava= 
        [pygame.image.load('nepriatelDoprava1.png'), 
         pygame.image.load('nepriatelDoprava2.png'), 
         pygame.image.load('nepriatelDoprava3.png'), 
         pygame.image.load('nepriatelDoprava4.png'), 
         pygame.image.load('nepriatelDoprava5.png'), 
         pygame.image.load('nepriatelDoprava6.png'), 
         pygame.image.load('nepriatelDoprava7.png'), 
         pygame.image.load('nepriatelDoprava8.png'), 
         pygame.image.load('nepriatelDoprava9.png'), 
         pygame.image.load('nepriatelDoprava10.png'), 
         pygame.image.load('nepriatelDoprava11.png')] 
    
    def __init__(self, x, y, sirka, vyska, koniec):
        self.x = x
        self.y = y
        self.sirka = sirka
        self.vyska = vyska
        self.cesta = [x, koniec]  # kde zacina a kde konci cestu.
        self.pocetKrokov = 0
        self.posun = 3
        
    def vykresliNepriatela(self, okno):
         self.pohybNepriatela()
         if self.pocetKrokov + 1 >= 33: # 11 obrazkov, kazdy obrazok 3x na obrazovke. 
              # kazdy obrazok ukazeme 3x.... 3 x 11 = 33.
              self.pocetKrokov = 0
         if self.posun> 0: # ak sa pohybuje doprava, zobrazime obr doprava
              okno.blit(self.kracaDoprava[self.pocetKrokov//3], (self.x,self.y))
              self.pocetKrokov+= 1
         else:  
              okno.blit(self.kracaDolava[self.pocetKrokov//3], (self.x,self.y))
              self.pocetKrokov += 1 #pridame metodu na pohyb

     def pohybNepriatela(self):
             if self.posun> 0:  # ak sa pohybujeme doprava
               if self.x < self.cesta[1] + self.posun: # pokial sa nedotkneme konca cesty
                 self.x += self.posun
               else: # zmeni smer
                 self.posun = self.posun * -1
                 self.x += self.posun
                 self.pocetKrokov = 0
            else: # ak sa pohybujeme dolava
               if self.x > self.cesta[0] - self.posun: # ak sa nedotkneme laveho konca
                 self.x += self.posun
               else:  # zmeni smer
                 self.posun = self.posun * -1
                 self.x += self.posun
                 self.pocetKrokov = 0
                 

Vytvoríme inštanciu nepriateľa

    ....
    nepriatel1= nepriatel(100, 410, 64, 64, 300)
    ...

    def prekresliHerneOkno():
        okno.blit(pozadieObr, (0,0))
        hrac1.vykresliPostavu(okno) 
        nepriatel1.vykresliNepriatela(okno) 
        for naboj in nabojePole:
          naboj.vykresliNaboj(okno)   
        pygame.display.update()

Celý kód:

...