После создания групп для классов перестали отображаться пули. Pygame

Основной файл:

import random
from enemy import orange
from enemy import red

pygame.init()

width = 352
height = 380

win = pygame.display.set_mode((width, height))
pygame.display.set_caption("Testing...")

user = ""

bckg = pygame.image.load("C:/Users/" + user + "/Desktop/game/assets/background/Space.png")
plr = pygame.image.load("C:/Users/" + user + "/Desktop/game/assets/player/player_4px.png")
bul_pl = pygame.image.load("C:/Users/" + user + "/Desktop/game/assets/bullets/bul_pl.png")

org_shp_img = pygame.image.load("C:/Users/" + user + "/Desktop/game/assets/enemy/orange/org_3hp.png")
red_shp_img = pygame.image.load("C:/Users/" + user + "/Desktop/game/assets/enemy/red/red_2hp.png")

sht_on_org = 0
sht_on_red = 0

x_org3 = 120+76
y_org3 = 10

x_org2 = 120
y_org2 = 10

x_org = 16
y_org = 10

x_red = 92
y_red = 10

x = 0
y = 302

spd = 4

red_sh1 = red(x_red, y_red, sht_on_red, 22) 

bullets_plr = []

org_ships = pygame.sprite.Group()
org_ships.add(orange(x_org, y_org, sht_on_org, 60))
#org_ships.add(orange(x_org2, y_org2, sht_on_org, 60), orange(x_org3, y_org3, sht_on_org, 60))


def str_gm():
    global x, y, spd, x_org, y_org, x_bull, y_bull, end_for_org, end_for_red, org_shp_img, org_shp_0hp, org_shp_1hp, org_shp_2hp, org_shp_3hp, sht_on_org, red_shp_img, red_shp_0hp, red_shp_1hp, red_shp_2hp, sht_on_red, x_red, y_red, rdy_org, rdy_red, org_ships, sht, org_sh1, org_sh2, width, org_sh1, end_for_org_1, end_for_org_2, end_for_org_3
    clock = pygame.time.Clock()

    run = True
    while run:
        clock.tick(60)
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
                quit()     
        
        pressed_keys = pygame.key.get_pressed()
        if pressed_keys[pygame.K_RIGHT]:
            x+=spd
               
        if pressed_keys[pygame.K_LEFT]:
            x-=spd
                
        if pressed_keys[pygame.K_SPACE]:
            bullets_plr.append([x+16, 292])
       
        
        bullts_pl()
        if x >= 308:
            x=308      
        if x <= 0:
            x=0             

        win.blit(bckg, (0, 0))
               
        for bullet in bullets_plr:
            win.blit(bul_pl, pygame.Rect(bullet[0], bullet[1], 0, 0))    
                 
                
        win.blit(plr, (x, y)) 
        
 
        org_ships.update()
        org_ships.draw(win)         
     

        #red_sh1.update()        
        #red_sh1.draw(win) 
        
        pygame.display.update()            
        
              
def bullts_pl(): 
        global x, y, spd, x_org, y_org, x_bull, y_bull, sht_on_org, spd_bull, x_red, y_red, sht_on_red, sht, go_to_two, bullets_plr
        num = len(bullets_plr)
        
        for a in range(len(bullets_plr)):
            bullets_plr[a][1] -= 7
            
        for bullet in bullets_plr[:]:
            if bullet[1] < 0:
                bullets_plr.remove(bullet)
                
            # if bullet[0] >= org_sh1.rect[0]-5 and bullet[0] <= org_sh1.rect[0]+76 and bullet[1] <= 55:
                # org_sh1.shot+=1
                # if num > 0 and bullet in bullets_plr:
                    # bullets_plr.remove(bullet)
            # if org_sh1.shot == 3:
                # org_sh1.rect[0] = random.randint(16, 180)
                # org_sh1.shot = 0
            
   
        if num >= 2:
            bullets_plr.remove(bullet)   
       
str_gm()

Файл с классами:

import pygame
import random

user = ""

speed = 2

end_for_org = False

bullets_org = []
bullets_red = []

image_bull = pygame.image.load("C:/Users/" + user + "/Desktop/game/assets/bullets/bul_enm.png")

end_fr_org = False
class orange(pygame.sprite.Sprite):
    def __init__(self, x, y, shot, y_bull):
        pygame.sprite.Sprite.__init__(self) 
        self.image = pygame.image.load("C:/Users/" + user + "/Desktop/game/assets/enemy/orange/org_3hp.png")
        self.rect = self.image.get_rect(center=(x+38, y+38)) 
        self.speed = speed
        self.shot = shot
        self.y_bull = y_bull   
         
    def update(self):  
        num = len(bullets_org)
        for b in range(len(bullets_org)):
            bullets_org[b][1] += 7
        for bullet_org in bullets_org[:]:
            if bullet_org[1] > 360:
                bullets_org.remove(bullet_org)    
        bullets_org.append([self.rect.x, 22])  
      
        if self.shot == 3:
            self.image = pygame.image.load("C:/Users/" + user + "/Desktop/game/assets/enemy/orange/org_0hp.png")               
        if self.shot == 2:
            self.image = pygame.image.load("C:/Users/" + user + "/Desktop/game/assets/enemy/orange/org_1hp.png")
        if self.shot == 1:
            self.image = pygame.image.load("C:/Users/" + user + "/Desktop/game/assets/enemy/orange/org_2hp.png")
        if self.shot == 0:
            self.image = pygame.image.load("C:/Users/" + user + "/Desktop/game/assets/enemy/orange/org_3hp.png")
    
    def draw(self, surf):      
        self.surf = surf
        for bullet_org in bullets_org:
            self.surf.blit(image_bull, pygame.Rect(bullet_org[0], bullet_org[1], 0, 0))
        self.surf.blit(self.image, self.rect) 
     
class red(pygame.sprite.Sprite):
    def __init__(self, x, y, shot, y_bull):      
        self.image = pygame.image.load("C:/Users/" + user + "/Desktop/game/assets/enemy/red/red_2hp.png")
        self.rect = self.image.get_rect(center=(x+38, y+38)) 
        self.speed = speed
        self.shot = shot
        self.y_bull = y_bull
        
    def update(self):  
        x_bull = self.rect.x
        num = len(bullets_red)
        for b in range(len(bullets_red)):
            bullets_red[b][1] += 7
        for bullet_red in bullets_red[:]:
            if bullet_red[1] > 360:
                bullets_red.remove(bullet_red)    
        bullets_red.append([x_bull+24, self.y_bull]) 
        if num >= 2:
            bullets_red.remove(bullet_red)
    
        if self.shot == 2:
            self.image = pygame.image.load("C:/Users/" + user + "/Desktop/game/assets/enemy/red/red_0hp.png")
        if self.shot == 1:
            self.image = pygame.image.load("C:/Users/" + user + "/Desktop/game/assets/enemy/red/red_1hp.png")
        if self.shot == 0:
            self.image = pygame.image.load("C:/Users/" + user + "/Desktop/game/assets/enemy/red/red_2hp.png")
    
    def draw(self, surf):
       self.surf = surf
       for bullet_red in bullets_red:
            self.surf.blit(image_bull, pygame.Rect(bullet_red[0], bullet_red[1], 0, 0))  
       self.surf.blit(self.image, self.rect)
      



Ответы (0 шт):