Advertisement
OtsoSilver

Untitled

Oct 29th, 2021
1,238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.62 KB | None | 0 0
  1. #pgzero
  2. import random
  3.  
  4. WIDTH = 600
  5. HEIGHT = 450
  6.  
  7. TITLE = "Космическое путешествие"
  8. FPS = 30
  9.  
  10. # Объекты и переменные
  11. ship = Actor("ship", (300, 400))
  12. space = Actor("space")
  13. enemies = []
  14. planets = [Actor("plan1", (random.randint(0, 600), -100)), Actor("plan2", (random.randint(0, 600), -100)), Actor("plan3", (random.randint(0, 600), -100))]
  15. meteors = []
  16. mode = 'menu'
  17. type1 = Actor("ship1", (100, 200))
  18. type2 = Actor("ship2", (300, 200))
  19. type3 = Actor("ship3", (500, 200))
  20.  
  21. # Заполнение списка врагов
  22. for i in range(5):
  23.     x = random.randint(0, 600)
  24.     y = random.randint(-450, -50)
  25.     enemy = Actor("enemy", (x, y))
  26.     enemy.speed = random.randint(2, 8)
  27.     enemies.append(enemy)
  28.    
  29. # Заполнение списка метеоритов
  30. for i in range(5):
  31.     x = random.randint(0, 600)
  32.     y = random.randint(-450, -50)
  33.     meteor = Actor("meteor", (x, y))
  34.     meteor.speed = random.randint(2, 10)
  35.     meteors.append(meteor)
  36.  
  37. # Отрисовка
  38. def draw():
  39.     # Режим меню
  40.     if mode == 'menu':
  41.         space.draw()
  42.         screen.draw.text('Выберите корабль', center = (300, 100), color = "white", fontsize = 36)
  43.         type1.draw()
  44.         type2.draw()
  45.         type3.draw()
  46.     # Режим игры
  47.     if mode == 'game':
  48.         space.draw()
  49.         planets[0].draw()
  50.         # Отрисовка метеоритов
  51.         for i in range(len(meteors)):
  52.             meteors[i].draw()
  53.         ship.draw()
  54.         # Отрисовка врагов
  55.         for i in range(len(enemies)):
  56.             enemies[i].draw()
  57.     # Окно проигрыша    
  58.     elif mode == 'end':
  59.         space.draw()
  60.         screen.draw.text("GAME OVER!", center = (300, 200), color = "white", fontsize = 36)
  61.    
  62. # Управление
  63. def on_mouse_move(pos):
  64.     ship.pos = pos
  65.  
  66. # Добавление в список нового врага
  67. def new_enemy():
  68.     x = random.randint(0, 400)
  69.     y = -50
  70.     enemy = Actor("enemy", (x, y))
  71.     enemy.speed = random.randint(2, 8)
  72.     enemies.append(enemy)
  73.  
  74. # Движение врагов
  75. def enemy_ship():
  76.     for i in range(len(enemies)):
  77.         if enemies[i].y < 650:
  78.             enemies[i].y = enemies[i].y + enemies[i].speed
  79.         else:
  80.             enemies.pop(i)
  81.             new_enemy()
  82.  
  83. # Движение планет
  84. def planet():
  85.     if planets[0].y < 550:
  86.             planets[0].y = planets[0].y + 1
  87.     else:
  88.         planets[0].y = -100
  89.         planets[0].x = random.randint(0, 600)
  90.         first = planets.pop(0)
  91.         planets.append(first)
  92.  
  93. # Движение метеоритов
  94. def meteorites():
  95.     for i in range(len(meteors)):
  96.         if meteors[i].y < 450:
  97.             meteors[i].y = meteors[i].y + meteors[i].speed
  98.         else:
  99.             meteors[i].x = random.randint(0, 600)
  100.             meteors[i].y = -20
  101.             meteors[i].speed = random.randint(2, 10)
  102.  
  103. # Столкновения
  104. def collisions():
  105.     global mode
  106.     for i in range(len(enemies)):
  107.         if ship.colliderect(enemies[i]):
  108.             mode = 'end'
  109.  
  110. def update(dt):
  111.     if mode == 'game':
  112.         enemy_ship()
  113.         collisions()
  114.         planet()
  115.         meteorites()
  116.        
  117. def on_mouse_down(button, pos):
  118.     global mode, ship
  119.     if mode == 'menu' and type1.collidepoint(pos):
  120.         ship.image = "ship1"
  121.         mode = 'game'
  122.     elif mode == 'menu' and type2.collidepoint(pos):
  123.         ship.image = "ship2"
  124.         mode = 'game'
  125.     elif mode == 'menu' and type3.collidepoint(pos):
  126.         ship.image = "ship3"
  127.         mode = 'game'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement