我暂时遇到了问题,我需要在游戏背景上加载图片,并且图片会不断加载,这是使用代码的类:
# 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”值并且我要不断更改背景加载时,我已经确保它是背景图片一遍又一遍地加载。 我无法引用该行,因为它说“未正确格式化为代码”,但我认为您可以轻松找到它。 我删除了一些行,这些行在这里无用的地方导致了太大了,谢谢!