我正在尝试使用pygame创建一个游戏,当我尝试在False
中创建变量以打印文本并停止播放音乐时,我遇到了问题,但它似乎没有做任何一个。不启动任何错误只是没有运行游戏结束。
import pygame,sys
from pygame.locals import *
from clases import nave
from clases import Invasor as Enemigo
#Variables globales
ancho =900
alto =480
listaEnemigo=[]
def detenerTodo():
for enemigo in listaEnemigo:
for disparo in enemigo.listaDisparo:
enemigo.listaDisparo.remove(disparo)
enemigo.conquista=True
def cargarEnemigos():
posx=100
for x in range (1,5):
enemigo=Enemigo(posx,100,40,'imagenes/marcianoA.jpg','imagenes/MarcianoB.jpg')
listaEnemigo.append(enemigo)
posx=posx+200
posx=100
for x in range (1,5):
enemigo=Enemigo(posx,0,40,'imagenes/Marciano2A.jpg','imagenes/Marciano2B.jpg')
listaEnemigo.append(enemigo)
posx=posx+200
posx=100
for x in range (1,5):
enemigo=Enemigo(posx,-100,40,'imagenes/Marciano3A.jpg','imagenes/Marciano3B.jpg')
listaEnemigo.append(enemigo)
posx=posx+200
def SpaceInvader():
pygame.init()
ventana = pygame.display.set_mode((ancho,alto))
pygame.display.set_caption("Primer Juego")
imagenfondo=pygame.image.load('imagenes/Fondo.jpg')
pygame.mixer.music.load('sonidos/fastinvader1.wav')
pygame.mixer.music.play(411)
Fuente=pygame.font.SysFont("Arial",31)
texto=Fuente.render("Fin del Juego",0,(120,100,40))
jugador=nave.naveEspacial(ancho,alto)
cargarEnemigos()
enjuego=True
reloj=pygame.time.Clock()
while True:
reloj.tick(60)
tiempo=pygame.time.get_ticks()/1000
for eventos in pygame.event.get():
if eventos.type == pygame.QUIT:
sys.exit()
if enjuego==True:
if eventos.type==pygame.KEYDOWN:
if eventos.key==K_LEFT:
jugador.movimientoIzquierda()
elif eventos.key==K_RIGHT:
jugador.movimientoDerecha()
elif eventos.key==K_b:
x,y=jugador.rect.center
jugador.disparar(x,y)
ventana.blit(imagenfondo,(0,0))
jugador.dibujar(ventana)
if len(jugador.listaDisparo)>0:
for x in jugador.listaDisparo:
x.dibujar(ventana)
x.trayectoria()
if x.rect.top<-10:
jugador.listaDisparo.remove(x)
else:
for enemigo in listaEnemigo:
if x.rect.colliderect(enemigo.rect):
listaEnemigo.remove(enemigo)
jugador.listaDisparo.remove(x)
if len(listaEnemigo)>0:
for enemigo in listaEnemigo:
enemigo.comportamiento(tiempo)
enemigo.dibujar(ventana)
if enemigo.rect.colliderect(jugador.rect):
jugador.destruccion()
enjuego==False
detenerTodo()
if len(enemigo.listaDisparo)>0:
for x in enemigo.listaDisparo:
x.dibujar(ventana)
x.trayectoria()
if x.rect.colliderect(jugador.rect):
jugador.destruccion()
enjuego==False
detenerTodo()
if x.rect.top>900:
enemigo.listaDisparo.remove(x)
else:
for disparo in jugador.listaDisparo:
if x.rect.colliderect(disparo.rect):
jugador.listaDisparo.remove(disparo)
enemigo.listaDisparo.remove(x)
if enjuego==False:
pygame.mixer.music.fadeout(3000)
ventana.blit(texto,(300,300))
pygame.display.update()
SpaceInvader()