pytgon上的背景不断加载

时间:2019-02-11 17:01:22

标签: python pygame

我暂时遇到了问题,我需要在游戏背景上加载图片,并且图片会不断加载,这是使用代码的类:

# 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()

我遇到问题的那条线是“ Segundo nivel”,整个游戏运行良好,但是当点数达到“ X”值并且我要不断更改背景加载时,我已经确保它是背景图片一遍又一遍地加载。 我无法引用该行,因为它说“未正确格式化为代码”,但我认为您可以轻松找到它。 我删除了一些行,这些行在这里无用的地方导致了太大了,谢谢!

0 个答案:

没有答案