OtsoSilver

Untitled

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