¿Cómo agregar una lista de clasificación de puntuación a la batalla de aviones de pygame? pitón
importar pygame
desde plane_sprites importar*
desde fondo importar fondo
desde enemigo importar enemigo
desde Héroe importar Héroe
desde el tiempo importar dormir
desde Bullet importar Bullet
clase Plane_main(object):
def __init__(self) :
print('Inicialización del juego')
self.screen = pygame.display.set_mode(SCREEN_RECT.size)
self.clock = pygame.time .Clock()
self.__create_sprites()
pygame.time.set_timer(CREATE_ENEMY_EVENT,1000)
pygame.time.set_timer(HERO_FIRE_EVENT, 500)
self.count = 0
self.score = 0
def __create_sprites(self):
# Grupo de fondo
self.back_group = pygame.sprite.Group()
bg1 = BackGround()
bg2 = BackGround(True)
pygame.mixer .init()
pygame.mixer.music.load("./Capo Productions - Viaje 00_00_00-00_00_59.ogg")
pygame.mixer.music.play(-1 )
self.back_group.add(bg1,bg2)
# Grupo enemigo
self.enemy_group = pygame.sprite.Group()
#Grupo de destrucción de nivel enemigo
self.enemy1_down_group=pygame.sprite.Group()
#Grupo de héroes
self.hero_group = pygame.sprite .Group()
self.hero = Hero()
self.hero_group.add(self.hero)
def start_game(self): p>
pygame.init()
print("Iniciar juego...")
# pygame.mixer.init()
# pygame.mixer.music.load("./Capo Productions - Viaje 00_00_00-00_00_59.ogg")
# pygame.mixer.music.play(-1)
# gameIcon = pygame.image.load("./name.png")
# pygame.display.set_icon(gameIcon)
mientras es verdadero:
self .count+=1
# 1. Establecer frecuencia de cuadros de actualización
self.clock.tick(10)
# 2. Monitoreo de eventos
self.__event_handler()
# 3. Detección de colisiones
self.__check_collide()
# 4. Actualizar grupo de sprites
self.__update_sprites()
# 5. Actualizar visualización de la pantalla
pygame.display.update()
def __event_handler(self):
"""Monitoreo de eventos"""
para evento en pygame.event.get():
if event.type == pygame.QUIT:
Plane_main.__game_over()
elif event.type == CREATE_ENEMY_EVENT:
self.enemy_group.add(Enemy())
evento elif. tipo == HERO_FIRE_EVENT:
self.hero.fire()
claves = pygame.key.get_pressed()
if claves[pygame.K_RIGHT]:
print('Mover a la derecha')
self.hero.speed = 5
self.hero.speed1 = 0
elif teclas[pygame.K_LEFT]:
print('Mover a la izquierda')
self.hero.speed = -5
self.hero.speed1 = 0
teclas elif[pygame.K_UP]:
print('Subir')
self.hero.speed1 = -5
self.hero.speed = 0
teclas elif[pygame.K_DOWN]:
print('Mover hacia abajo ' )
self.hero.speed1= 5
self.hero.speed = 0
else:
self.hero. = 0
self.hero.speed1 = 0
if event.type == HERO_FIRE_EVENT:
self.hero.fire()
print('¡¡¡Bala de fuego!!!!!!')
def __check_collide(self):
"""Detección de colisiones"""
# 1. Las balas destruyen los aviones enemigos
enemigo_down = pygame.sprite.groupcollide(self.enemy_group, self.hero.bullets,True, True)
enemigo1_down_group.add(enemy_down)
# 2. Aviones enemigos chocan con héroes
enemigos = pygame.sprite.spritecollide(self.hero, self.enemy_group, True)
# Al juzgar el la lista tiene contenido`
si len(enemigos) > 0:
dormir(3)
# # Deja morir al héroe
self. hero.kill()
# Finalizar el juego
Plane_main.__game_over()
def __update_sprites(self):
self.back_group .update()
self.back_group.draw(self.screen)
self.enemy_group.update()
self.enemy_group.draw (self. pantalla)
self.hero_group.update()
self.hero_group.draw(self.screen)
self.hero.bullets.update ()
self.hero.bullets.draw(self.pantalla)
self.drawT
ext(str(self.score),SCREEN_RECT.width - 50,50)
para enemigo1_down en enemigo1_down_group:
self.screen.blit(enemy1_down_surface[enemy1_down.down_index],enemy1_down .rect)
si self.count % 5 ==0:
enemigo1_down.down_index += 1
si enemigo1_down.down_index ==3: p> p>
# pygame.mixer.music.load("./baozha.ogg")
# pygame.mixer.music.play()
self. puntuación+= 5
enemigo1_down_group.remove(enemy1_down)
print(self.score)
#Actualizar grupo de elfos
# para grupo en [self.back_group, self.enemy_group, self.hero_group,self.hero.bullets]:
# group.update()
# group.draw(self.screen) p>
@staticmethod
def __game_over():
"""Juego terminado"""
print("Juego terminado") p>
pygame.quit()
exit()
def drawText(self,text,posx,posy,textHeight=48,fontColor=(0,0 ,0 ),backgroundColor=(111,225,1)):
fontObj = pygame.font.Font('freesansbold.ttf',textHeight)
textSurfaceObj = fontObj.render(texto ,13 ,fontColor,backgroundColor)
textRectObj = textSurfaceObj.get_rect()
textRectObj.center = (posx,posy)
self.screen.blit( textSurfaceObj, textRectObj)
#Determinar si el archivo actualmente ejecutado es el archivo principal
#Si no, el código bajo if no se ejecutará
si __name__ == '__main__ ':
juego = Plane_main()
juego.start_game()