Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.57 KB | None | 0 0
  1. Главный alien.py
  2.  
  3. import sys
  4. import pygame
  5. from Settings import settings
  6. from ship import Ship
  7. import game_functions as gf
  8. from pygame.sprite import Group
  9.  
  10.  
  11. ai_settings = settings()
  12.  
  13.  
  14. def run_game():
  15. pygame.init()
  16. screen = pygame.display.set_mode((ai_settings.screen_width, ai_settings.screen_height))
  17. pygame.display.set_caption("Alien_isolation")
  18. ship = Ship(screen)
  19. bullets = Group()
  20. while True:
  21. gf.check_events(ai_settings, screen, ship, bullets)
  22. ship.update()
  23. bullets.update()
  24. gf.update_screen(ai_settings, screen, ship, bullets)
  25.  
  26. run_game()
  27.  
  28.  
  29.  
  30.  
  31.  
  32. game_functions.py
  33.  
  34. import sys
  35. import pygame
  36. from bullet import Bullet
  37.  
  38. def check_keydown_events(event, ai_settings, screen, ship, bullets):
  39. if event.key == pygame.K_LEFT:
  40. ship.moving_left = True
  41. if event.key == pygame.K_RIGHT:
  42. ship.moving_right = True
  43. elif event.key == pygame.K_SPACE:
  44. new_bullet = Bullet(ai_settings, screen, ship)
  45. bullets.add(new_bullet)
  46.  
  47. def check_keyup_events(event, ship):
  48. if event.key == pygame.K_LEFT:
  49. ship.moving_left = False
  50. if event.key == pygame.K_RIGHT:
  51. ship.moving_right = False
  52.  
  53. def check_events(ai_settings, screen, ship, bullets):
  54. for event in pygame.event.get():
  55. if event.type == pygame.QUIT:
  56. sys.exit()
  57. elif event.type == pygame.KEYDOWN:
  58. check_keydown_events(event, ai_settings, screen, ship, bullets)
  59. elif event.type == pygame.KEYUP:
  60. check_keyup_events(event, ship)
  61. def update_screen(ai_settings, screen, ship, bullets):
  62. for bullet in bullets.sprites():
  63. bullet.draw_bullet()
  64.  
  65. screen.fill(ai_settings.bg_color)
  66. ship.bltime()
  67. pygame.display.flip()
  68.  
  69.  
  70.  
  71. bullet.py
  72.  
  73. import pygame
  74. from pygame.sprite import Sprite
  75.  
  76. class Bullet(Sprite):
  77. def __init__(self, ai_settings, screen, ship):
  78. super(Bullet, self).__init__()
  79. self.screen = screen
  80.  
  81. self.rect = pygame.Rect(0, 0 , ai_settings.bullet_width, ai_settings.bullet_height)
  82. self.rect.centerx = ship.rect.centerx
  83. self.rect.top = ship.rect.top
  84.  
  85. self.y = float(self.rect.y)
  86.  
  87. self.color = ai_settings.bullet_color
  88. self.speed_factor = ai_settings.bullet_speed_factor
  89.  
  90. def update(self):
  91. self.y -= self.speed_factor
  92. self.rect.y = self.y
  93. def draw_bullet(self):
  94. pygame.draw.rect(self.screen, self.color, self.rect)
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101. settings.py
  102.  
  103. class settings():
  104. def __init__(self):
  105. self.bg_color = (112,112,112)
  106. self.screen_width = 1200
  107. self.screen_height = 800
  108.  
  109. self.bullet_speed_factor = 1
  110. self.bullet_width = 3
  111. self.bullet_height = 15
  112. self.bullet_color = 61, 61, 61
  113.  
  114.  
  115.  
  116.  
  117.  
  118. ship.py
  119.  
  120. import pygame
  121.  
  122. class Ship():
  123. def __init__(self, screen):
  124.  
  125. self.screen = screen
  126.  
  127. self.image = pygame.image.load('images/ship.png')
  128. self.rect = self.image.get_rect()
  129. self.screen_rect = self.screen.get_rect()
  130. self.rect.centerx = self.screen_rect.centerx
  131. self.rect.bottom = self.screen_rect.bottom
  132. self.moving_right = False
  133. self.moving_left = False
  134. def update(self):
  135. if self.moving_right == True and self.rect.centerx < 1170:
  136. self.rect.centerx += 1
  137. if self.moving_left == True and self.rect.centerx > 30:
  138. self.rect.centerx -= 1
  139.  
  140. def bltime(self):
  141. self.screen.blit(self.image , self.rect)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement