显示生命值
This commit is contained in:
commit
7a54265a5f
|
@ -25,12 +25,12 @@ def run_game():
|
|||
while True:
|
||||
gf.check_events(ai_settings, screen, stats, sb, play_button, ship,
|
||||
aliens, bullets)
|
||||
|
||||
if stats.game_active:
|
||||
ship.update()
|
||||
gf.update_bullets(ai_settings, screen, stats, sb, ship, aliens,
|
||||
bullets)
|
||||
gf.update_aliens(ai_settings, stats, screen, ship, aliens, bullets)
|
||||
bullets)
|
||||
gf.update_aliens(ai_settings, screen, stats, sb, ship, aliens,
|
||||
bullets)
|
||||
gf.update_screen(ai_settings, screen, stats, sb, ship, aliens,
|
||||
bullets, play_button)
|
||||
|
||||
|
|
|
@ -112,14 +112,12 @@ def get_number_rows(ai_settings, ship_height, alien_height):
|
|||
(3 * alien_height) - ship_height)
|
||||
number_rows = int(available_space_y / (2 * alien_height))
|
||||
return number_rows
|
||||
def update_aliens(ai_settings, stats, screen, ship, aliens, bullets):
|
||||
def update_aliens(ai_settings, screen, stats, sb, ship, aliens, bullets):
|
||||
check_fleet_edges(ai_settings, aliens)
|
||||
aliens.update()
|
||||
if pygame.sprite.spritecollideany(ship, aliens):
|
||||
print("Ship hit!!!")
|
||||
if pygame.sprite.spritecollideany(ship, aliens):
|
||||
ship_hit(ai_settings, stats, screen, ship, aliens, bullets)
|
||||
check_aliens_bottom(ai_settings, stats, screen, ship, aliens, bullets)
|
||||
ship_hit(ai_settings, screen, stats, sb, ship, aliens, bullets)
|
||||
check_aliens_bottom(ai_settings, screen, stats, sb, ship, aliens, bullets)
|
||||
|
||||
def check_fleet_edges(ai_settings, aliens):
|
||||
for alien in aliens.sprites():
|
||||
|
@ -130,9 +128,12 @@ def change_fleet_direction(ai_settings, aliens):
|
|||
for alien in aliens.sprites():
|
||||
alien.rect.y += ai_settings.fleet_drop_speed
|
||||
ai_settings.fleet_direction *= -1
|
||||
def ship_hit(ai_settings, stats, screen, ship, aliens, bullets):
|
||||
|
||||
|
||||
def ship_hit(ai_settings, screen, stats, sb, ship, aliens, bullets):
|
||||
if stats.ships_left > 0:
|
||||
stats.ships_left -= 1
|
||||
sb.prep_ships()
|
||||
aliens.empty()
|
||||
bullets.empty()
|
||||
create_fleet(ai_settings, screen, ship, aliens)
|
||||
|
@ -142,11 +143,12 @@ def ship_hit(ai_settings, stats, screen, ship, aliens, bullets):
|
|||
stats.game_active = False
|
||||
pygame.mouse.set_visible(True)
|
||||
|
||||
def check_aliens_bottom(ai_settings, stats, screen, ship, aliens, bullets):
|
||||
def check_aliens_bottom(ai_settings, screen, stats, sb, ship, aliens,
|
||||
bullets):
|
||||
screen_rect = screen.get_rect()
|
||||
for alien in aliens.sprites():
|
||||
if alien.rect.bottom >= screen_rect.bottom:
|
||||
ship_hit(ai_settings, stats, screen, ship, aliens, bullets)
|
||||
ship_hit(ai_settings, screen, stats, sb, ship, aliens, bullets)
|
||||
break
|
||||
|
||||
def check_play_button(ai_settings, screen, stats, sb, play_button, ship,
|
||||
|
@ -160,6 +162,7 @@ aliens, bullets, mouse_x, mouse_y):
|
|||
sb.prep_score()
|
||||
sb.prep_high_score()
|
||||
sb.prep_level()
|
||||
sb.prep_ships()
|
||||
aliens.empty()
|
||||
bullets.empty()
|
||||
create_fleet(ai_settings, screen, ship, aliens)
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
import pygame.font
|
||||
from pygame.sprite import Group
|
||||
from ship import Ship
|
||||
class Scoreboard():
|
||||
|
||||
def __init__(self, ai_settings, screen, stats):
|
||||
|
@ -11,6 +13,7 @@ class Scoreboard():
|
|||
self.prep_score()
|
||||
self.prep_high_score()
|
||||
self.prep_level()
|
||||
self.prep_ships()
|
||||
|
||||
def prep_score(self):
|
||||
rounded_score = int(round(self.stats.score, -1))
|
||||
|
@ -36,9 +39,18 @@ self.ai_settings.bg_color)
|
|||
self.screen.blit(self.score_image, self.score_rect)
|
||||
self.screen.blit(self.high_score_image, self.high_score_rect)
|
||||
self.screen.blit(self.level_image, self.level_rect)
|
||||
self.ships.draw(self.screen)
|
||||
|
||||
def prep_level(self):
|
||||
self.level_image = self.font.render(str(self.stats.level), True,self.text_color, self.ai_settings.bg_color)
|
||||
self.level_rect = self.level_image.get_rect()
|
||||
self.level_rect.right = self.score_rect.right
|
||||
self.level_rect.top = self.score_rect.bottom + 10
|
||||
|
||||
def prep_ships(self):
|
||||
self.ships = Group()
|
||||
for ship_number in range(self.stats.ships_left):
|
||||
ship = Ship(self.ai_settings,self.screen)
|
||||
ship.rect.x = 10 + ship_number * ship.rect.width
|
||||
ship.rect.y = 10
|
||||
self.ships.add(ship)
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
import pygame
|
||||
from settings import Settings
|
||||
class Ship():
|
||||
from pygame.sprite import Sprite
|
||||
class Ship(Sprite):
|
||||
def __init__(self, ai_settings, screen):
|
||||
super(Ship, self).__init__()
|
||||
self.screen = screen
|
||||
self.ai_settings = ai_settings
|
||||
self.image = pygame.image.load('20210614231753.bmp')
|
||||
|
|
Loading…
Reference in New Issue