Question: How to detect collision between a list of bullets and a list of sprites using the provided classes?
Solution:
PyGame provides several methods for detecting collisions, including:
Sprite Collision Methods
To detect collision between the given Sprite and Bullet classes, you can use the pygame.Rect.colliderect method:
# Initialize sprite and bullet my_sprite = Sprite(sx, sy, name) my_bullet = Bullet(by, by) # Main loop while True: # [...] # Check for collision between sprite and bullet if my_sprite.rect.colliderect(my_bullet.rect): print("Hit")
Tips:
class Sprite: def __init__(self, x, y, name): self.image = pygame.image.load(name) self.rect = self.image.get_rect(topleft=(x, y)) # ... class Bullet: def __init__(self, x, y): self.bullet = pygame.image.load("user_bullet.BMP") self.rect = self.bullet.get_rect(topleft=(x + 23, y)) # ...
The above is the detailed content of How to Detect Collisions Between Lists of Bullets and Sprites in Pygame?. For more information, please follow other related articles on the PHP Chinese website!