Advertisement
OtsoSilver

Untitled

Oct 31st, 2021
834
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.92 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. soldat = Actor("soldat", (300, 400))
  12. platforme = Actor("platforme")
  13. enemis = []
  14. ghostes = []
  15. bullet = []
  16. mode = 'menu'
  17. type1 = Actor("soldat", (100, 200))
  18. type2 = Actor("soldat(3)", (300, 200))
  19. type3 = Actor("soldat(4)", (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("enemis", (x, y))
  26.     enemy.speed = random.randint(2, 8)
  27.     enemis.append(enemis)
  28.    
  29. # Заполнение списка призрак
  30. for i in range(5):
  31.     x = random.randint(0, 600)
  32.     y = random.randint(-450, -50)
  33.     ghost = Actor("ghost", (x, y))
  34.     ghost.speed = random.randint(2, 10)
  35.     ghostes.append(ghost)
  36.  
  37. # Отрисовка
  38. def draw():
  39.     # Режим меню
  40.     if mode == 'menu':
  41.         platforme.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.         platforme.draw()
  49.         # Отрисовка призрак
  50.         for i in range(len(ghostes)):
  51.             ghostes[i].draw()
  52.         soldat.draw()
  53.         # Отрисовка врагов
  54.         for i in range(len(enemis)):
  55.             enemis[i].draw()
  56.         # Отрисовка пуль    
  57.         for i in range(len(bullets)):
  58.             bullet[i].draw()
  59.     # Окно проигрыша    
  60.     elif mode == 'end':
  61.         platforme.draw()
  62.         screen.draw.text("GAME OVER!", center = (300, 200), color = "white", fontsize = 36)
  63.    
  64. # Управление
  65. def on_mouse_move(pos):
  66.     soldat.pos = pos
  67.  
  68. # Добавление в список нового врага
  69. def new_enemy():
  70.     x = random.randint(0, 400)
  71.     y = -50
  72.     enemy = Actor("enemy", (x, y))
  73.     enemy.speed = random.randint(2, 8)
  74.     enemis.append(enemy)
  75.  
  76. # Движение врагов
  77. def enemy_ship():
  78.     for i in range(len(enemis)):
  79.         if enemis[i].y < 650:
  80.             enemis[i].y = enemis[i].y + enemis[i].speed
  81.         else:
  82.             enemis.pop(i)
  83.             new_enemy()
  84.  
  85.  
  86. # Движение призраков
  87. def ghost():
  88.     for i in range(len(ghostes)):
  89.         if ghostes[i].y < 450:
  90.             ghostes[i].y = ghostes[i].y + ghostes[i].speed
  91.         else:
  92.             ghostes[i].x = random.randint(0, 600)
  93.             ghostes[i].y = -20
  94.             ghostes[i].speed = random.randint(2, 10)
  95.  
  96. # Столкновения
  97. def collisions():
  98.     global mode
  99.     for i in range(len(enemis)):
  100.         if soldat.colliderect(enemis[i]):
  101.             mode = 'end'
  102.         # Столкновение пуль с врагами
  103.         for j in range(len(bullet)):
  104.             if bullet[j].colliderect(enemis[i]):
  105.                 enemis.pop(i)
  106.                 bullet.pop(j)
  107.                 new_enemy()
  108.                 break
  109.  
  110. def update(dt):
  111.     if mode == 'game':
  112.         enemy_ship()
  113.         collisions()
  114.         ghost()
  115.         # Движение пуль
  116.         for i in range(len(bullet)):
  117.             if bullet[i].y < 0:
  118.                 bullet.pop(i)
  119.                 break
  120.             else:
  121.                 bullet[i].y = bullet[i].y - 10
  122.        
  123. def on_mouse_down(button, pos):
  124.     global mode, soldat
  125.     if mode == 'menu' and type1.collidepoint(pos):
  126.         soldat.image = "soldat"
  127.         mode = 'game'
  128.     elif mode == 'menu' and type2.collidepoint(pos):
  129.         soldat.image = "soldat(3)"
  130.         mode = 'game'
  131.     elif mode == 'menu' and type3.collidepoint(pos):
  132.         soldat.image = "soldat(4)"
  133.         mode = 'game'
  134.     # Стрельба    
  135.     elif mode == 'game' and button == mouse.LEFT:
  136.         bullet = Actor("missiles")
  137.         bullet.pos = soldat.pos
  138.         bullet.append(bullet)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement