Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def update(self, delta_time):
""" Movement and game logic """
# Call update on all sprites (The sprites don't do much in this
# example though.)
self.physics_engine.update()
# See if we hit any coins
coin_hit_list = arcade.check_for_collision_with_list(self.player_sprite,
self.coin_list)
# Loop through each coin we hit (if any) and remove it
for coin in coin_hit_list:
# Remove the coin
coin.remove_from_sprite_lists()
# Play a sound
arcade.play_sound(self.collect_coin_sound)
# Add one to the score
self.score += 1
# --- Manage Scrolling ---
# Track if we need to change the viewport
changed = False
def update(self, delta_time):
""" Movement and game logic """
# Call update on all sprites (The sprites don't do much in this
# example though.)
self.all_sprites_list.update()
# Generate a list of all sprites that collided with the player.
hit_list = arcade.check_for_collision_with_list(self.player_sprite,
self.coin_list)
# Loop through each colliding sprite, remove it, and add to the score.
for coin in hit_list:
coin.kill()
self.score += 1
def update(self, delta_time):
""" Movement and game logic """
# Call update on all sprites (The sprites don't do much in this
# example though.)
self.coin_list.update()
# Generate a list of all sprites that collided with the player.
coins_hit_list = arcade.check_for_collision_with_list(self.player_sprite,
self.coin_list)
# Loop through each colliding sprite, remove it, and add to the score.
for coin in coins_hit_list:
coin.remove_from_sprite_lists()
self.score += 1
def on_update(self, delta_time):
""" Movement and game logic """
# Call update on all sprites (The sprites don't do much in this
# example though.)
self.coin_list.update()
# Generate a list of all sprites that collided with the player.
coins_hit_list = arcade.check_for_collision_with_list(self.player_sprite, self.coin_list)
# Loop through each colliding sprite to set intensity=bright
for coin in coins_hit_list:
coin.intensity = 'bright'
coin.alpha = 255
hit_trigger = arcade.check_for_collision(self.player_sprite, self.trigger_sprite)
if hit_trigger:
intense_sprites = [sprite for sprite in self.coin_list if sprite.intensity == 'bright']
for coin in intense_sprites:
coin.remove_from_sprite_lists()
def on_update(self, delta_time):
""" Movement and game logic """
for coin in self.coin_list:
coin.follow_sprite(self.player_sprite)
# Generate a list of all sprites that collided with the player.
hit_list = arcade.check_for_collision_with_list(self.player_sprite, self.coin_list)
# Loop through each colliding sprite, remove it, and add to the score.
for coin in hit_list:
coin.remove_from_sprite_lists()
self.score += 1
def animate(self, delta_time):
self.all_sprites_list.update()
hit_list = arcade.check_for_collision_with_list(
self.player_sprite,
self.coin_list
)
for coin in hit_list:
coin.kill()
self.score += 1
self.frame_count += 1
if not self.game_over:
self.all_sprites_list.update()
for bullet in self.bullet_list:
asteroids = \
arcade.check_for_collision_with_list(bullet, self.asteroid_list)
for asteroid in asteroids:
self.split_asteroid(asteroid)
asteroid.kill()
bullet.kill()
if not self.player_sprite.respawning:
asteroids = \
arcade.check_for_collision_with_list(self.player_sprite,
self.asteroid_list)
if len(asteroids) > 0:
if self.lives > 0:
self.lives -= 1
self.player_sprite.respawn()
self.split_asteroid(asteroids[0])
asteroids[0].kill()
self.ship_life_list.pop().kill()
print("Crash")
else:
self.game_over = True
print("Game over")
self.wall_list.append(wall)
# Set up the player
self.player_sprite = arcade.Sprite(":resources:images/animated_characters/female_person/femalePerson_idle.png", PLAYER_SPRITE_SCALING)
self.player_list.append(self.player_sprite)
# Randomly place the player. If we are in a wall, repeat until we aren't.
placed = False
while not placed:
# Randomly position
self.player_sprite.center_x = random.randrange(AREA_WIDTH)
self.player_sprite.center_y = random.randrange(AREA_HEIGHT)
# Are we in a wall?
walls_hit = arcade.check_for_collision_with_list(self.player_sprite, self.wall_list)
if len(walls_hit) == 0:
# Not in a wall! Success!
placed = True
self.physics_engine = arcade.PhysicsEngineSimple(self.player_sprite,
self.wall_list)
if len(check_for_collision_with_list(self.player_sprite, self.platforms)) > 0:
# No, ramp run-up doesn't work.
self.player_sprite.center_y -= change_x
self.player_sprite.center_x -= 1
# print(f"Spot R ({self.player_sprite.center_x}, {self.player_sprite.center_y})")
check_again = True
break
# else:
# print("Run up ok 1")
# print(f"Spot 2 ({self.player_sprite.center_x}, {self.player_sprite.center_y})")
elif change_x < 0:
for item in hit_list:
# See if we can "run up" a ramp
self.player_sprite.center_y -= change_x
if len(check_for_collision_with_list(self.player_sprite, self.platforms)) > 0:
# Can't run up the ramp, reverse
self.player_sprite.center_y += change_x
self.player_sprite.left = max(item.right, self.player_sprite.left)
# print(f"Reverse 1 {item.right}, {self.player_sprite.left}")
# Ok, if we were shoved back to the right, we need to check this whole thing again.
check_again = True
break
# print(f"Spot 4 ({self.player_sprite.center_x}, {self.player_sprite.center_y})")
else:
print("Error, x collision while player wasn't moving.\n"
"Make sure you aren't calling multiple updates, like "
"a physics engine update and an all sprites list update.")
# print(f"Spot E ({self.player_sprite.center_x}, {self.player_sprite.center_y})")
# Set up the player
self.player_sprite = arcade.Sprite(":resources:images/animated_characters/female_person/femalePerson_idle.png", SPRITE_SCALING)
self.player_list.append(self.player_sprite)
# Randomly place the player. If we are in a wall, repeat until we aren't.
placed = False
while not placed:
# Randomly position
max_x = GRID_WIDTH * SPRITE_SIZE
max_y = GRID_HEIGHT * SPRITE_SIZE
self.player_sprite.center_x = random.randrange(max_x)
self.player_sprite.center_y = random.randrange(max_y)
# Are we in a wall?
walls_hit = arcade.check_for_collision_with_list(self.player_sprite, self.wall_list)
if len(walls_hit) == 0:
# Not in a wall! Success!
placed = True
self.physics_engine = arcade.PhysicsEngineSimple(self.player_sprite,
self.wall_list)