Red de conocimiento informático - Material del sitio web - ¿Cómo agregar una lista de clasificación de puntuación a la batalla de aviones de pygame? pitón

¿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):

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>

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

@staticmethod

def __game_over():

"""Juego terminado"""

print("Juego terminado")

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