Фон на питгоне загружается постоянно - PullRequest
0 голосов
/ 11 февраля 2019

У меня сейчас проблема, мне нужно загрузить изображение на фоне игры, и оно загружается постоянно, вот класс, в котором используется код:

# Clase para la escena del juego.
class Game():
def __init__(self):

     # Cargamos el fondo.
    self.fondo = load_image('Fondo1.png', IMG_DIR)
    self.primera_vez = True

    # Cargamos las imágenes para los marcadores y para los enemigos.
    self.nitro_img_marcador = load_image('nitro_disparo.png', IMG_DIR, alpha=True)
    self.manzana_img = load_image('manzana.png', IMG_DIR, alpha=True)
    self.enemigo_img = load_image('enemigo.png', IMG_DIR, alpha=True)
    self.enemigo_medium_img = load_image('enemigo_mediano.png', IMG_DIR, alpha=True)
    self.enemigo_big_img = load_image('enemigo_grande.png', IMG_DIR, alpha=True)

    # Creamos el grupo de sprites general
    self.sprites = pygame.sprite.Group()
    self.cajas = pygame.sprite.Group()
    self.enemigos = pygame.sprite.Group()
    self.lifes = pygame.sprite.Group()

    # Creamos un contador para los enemigos aleatorios.
    self.contador = 0
    # Creamos una variable que contenerá los puntos que llevemos.
    self.puntos = 0




    # Creamos a crash y lo añadimos al grupo sprites.
    self.crash = Crash(self.sprites, self.cajas)
    self.sprites.add(self.crash)

     'bin.ttf', FONTS_DIR, 680, 18, color=(255, 0, 0))


    # Definimos las opciones que mostrará el menú.
    self.menu_opciones = [
        ('Jugar', nuevo_juego),
        (u'Creditos', creditos),
        ('Ayuda', como_jugar),
        ('Salir', salir_juego)
    ]


def update(self):

    # Pasamos la variable global escena.
    global escena
  # Segundo nivel<<<<<<<<<<<----HERE ---------------------------------
    if  self.puntos > 0:
        self.fondo = load_image('Fondo2.png', IMG_DIR)
        self.primera_vez = True  

   # Comprobamos los eventos.
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            print ('Cerrando Crash Rush')
            sys.exit()
        if event.type == pygame.KEYDOWN:
            if event.key == K_ESCAPE:
                escena = Menu(self.menu_opciones)

    # Actualizamos el contador de enemigos aleatorios.
    if self.contador > 0:
        self.contador -= 1

    # Generamos los enemigos aleatorios.
    if self.contador == 0:
        self.enemigo = Enemigo(self.enemigo_img)
        self.sprites.add(self.enemigo)
        self.enemigos.add(self.enemigo)
        self.contador = 100



    # Comprobamos las colisiones.
    for misil in self.cajas:
        misil.colisiones(self.enemigos)
    for enemigo in self.enemigos:
        enemigo.choque_crash(self.crash)

    # Comprobamos los puntos.
    for enemigo in self.enemigos:
        comprobacion_puntos = enemigo.comprobar_puntos()
        if comprobacion_puntos[0]:
            self.puntos += comprobacion_puntos[1]
    self.marcador.actualizar_puntos(self.puntos)

    # Comprobamos el número de vidas.
    for life in self.lifes:
        life.comprobar_existencia(self.crash.vidas)

    # Si hemos muerto ponemos la escena de Game Over.
    if self.crash.vidas < 0:
        print ('Entrando a escena de Game Over...')
        escena = Game_Over(self.puntos)

    # Comprobamos el numero de cajas/manzanas.
    self.marcador_nitro.actualizar_cajas(self.crash.nitro)
    self.marcador_manzana.actualizar_cajas(self.crash.manzana_restante)

    # Actualizamos los sprites.
    self.sprites.update()

def imprimir(self, screen):
    if self.primera_vez:
        screen.blit(self.fondo, (0, 0))
        self.primera_vez = False

    # Actualizamos la pantalla.
    self.sprites.clear(screen, self.fondo)

    screen.blit(self.nitro_img_marcador, (10, 43))
    screen.blit(pygame.transform.scale(self.manzana_img, (8, 17)), (60, 43))
    screen.blit(self.score[0], self.score[1])

    self.sprites.draw(screen)
    pygame.display.flip()

Строка imу меня проблема с "Segundo nivel", вся игра работает нормально, но когда очки достигают суммы "X" и я хочу изменить фон, он загружается постоянно, я уже убедился, что это фоновое изображение, котороезагрузка снова и снова.Я не мог процитировать строку, потому что она сказала "неправильно отформатирован как код", но я думаю, что вы можете найти это легко.И я удалил несколько строк, которые здесь бесполезны, потому что они были слишком большими, спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...