Maison >développement back-end >Tutoriel Python >Comment détecter les collisions entre les listes de balles et les sprites dans Pygame ?
Question :Comment détecter une collision entre une liste de balles et une liste de sprites en utilisant les classes fournies ?
Solution :
PyGame fournit plusieurs méthodes pour détecter les collisions, notamment :
Collision de sprites Méthodes
Pour détecter les collisions entre les classes Sprite et Bullet données, vous pouvez utiliser le pygame.Rect.colliderect méthode :
# 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")
Conseils :
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)) # ...
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!