Advertisement
acclivity

arcade_spawning

Oct 4th, 2023 (edited)
879
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.27 KB | Gaming | 0 0
  1.     def enemy_spawns(self):
  2.  
  3.         if len(self.enemy_sprite_list1) == 0:
  4.             enemy_count1 = random.randint(18, 35)  # To set a random number of enemies to spawn (first row)
  5.  
  6.             for _ in range(enemy_count1):  # Populating the first row on enemies.
  7.                 self.enemy_sprite = Enemies()
  8.                 self.enemy_sprite_list1.append(self.enemy_sprite)
  9.  
  10.             for enemy in self.enemy_sprite_list1:  # Setting the positions of the first row of enemies.
  11.                 enemy.center_x = random.randrange(0 + enemy_radius / 2, WINDOW_WIDTH - enemy_radius / 2, enemy_radius)
  12.                 enemy.center_y = WINDOW_HEIGHT + enemy_radius * 2
  13.                 while arcade.check_for_collision_with_list(enemy,
  14.                                                            self.enemy_sprite_list1):  # So that enemies don t spawn overlapped.
  15.                     enemy.center_x = random.randrange(0 + enemy_radius / 2, WINDOW_WIDTH - enemy_radius / 2,
  16.                                                       enemy_radius)
  17.  
  18.         for enemy1 in self.enemy_sprite_list1[0:1]:      ### Here we only need to look at one sprite in this list
  19.  
  20.             if enemy1.center_y <= WINDOW_HEIGHT / 2 and len(
  21.                     self.enemy_sprite_list2) == 0:  # When the first row of enemy is at half screen (500) we create and spawn the second row.
  22.                 enemy_count2 = random.randint(18, 35)  # To set a random number of enemies to spawn (second row)
  23.  
  24.                 for _ in range(enemy_count2):  # Populating the second row of enemies.
  25.                     self.enemy_sprite = Enemies()
  26.                     self.enemy_sprite_list2.append(self.enemy_sprite)
  27.  
  28.                 for enemy2 in self.enemy_sprite_list2:  # Setting the positions of the second row of enemies.
  29.                     enemy2.center_x = random.randrange(0 + enemy_radius / 2, WINDOW_WIDTH - enemy_radius / 2,
  30.                                                        enemy_radius)
  31.                     enemy2.center_y = WINDOW_HEIGHT + enemy_radius * 2
  32.                     while arcade.check_for_collision_with_list(enemy2,
  33.                                                                self.enemy_sprite_list2):  # So that enemies don t spawn overlapped.
  34.                         enemy2.center_x = random.randrange(0 + enemy_radius / 2, WINDOW_WIDTH - enemy_radius / 2,
  35.                                                            enemy_radius)
  36.  
  37.             if enemy1.center_y < 0:  # When the obstacles's center is below the screen
  38.                 for sp in self.enemy_sprite_list1:      ### one sprite from list1 hit bottom, so kill all of this list
  39.                    del sp
  40.                 self.enemy_sprite_list1.clear()  # clear the sprite list.
  41.                 self.score_updated = False  # Current row's score can be updated again.
  42.  
  43.         for enemy2 in self.enemy_sprite_list2[0:1]:         ### Here we only need to look at one list2 enemy sprite
  44.  
  45.             if enemy2.center_y < 0:
  46.                 self.score_updated = False  # Current row's score can be updated again.
  47.                 for sp in self.enemy_sprite_list2:          ### One sprite hit bottom, so kill all of this list
  48.                    del sp
  49.                 self.enemy_sprite_list2.clear()             ### move the clear() down to here
  50.  
  51.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement