Maison >développement back-end >Tutoriel Python >Comment les méthodes `colliderect()` et `get_rect()` de Pygame peuvent-elles être utilisées pour détecter les collisions entre des objets rectangulaires et des images ?
Dans ce jeu, vous devez attraper des objets qui tombent avec un bol à l'aide d'images et détecter les collisions entre eux. Pygame fournit une méthode pour simplifier ce processus.
Pour détecter les collisions entre des objets rectangulaires, utilisez la classe pygame.Rect pour créer un objet rectangle pour les deux objets ou des images. Ensuite, utilisez la méthode collirect() pour vérifier si les rectangles se croisent.
Le code ci-dessous démontre cette technique :
rect1 = pygame.Rect(x1, y1, w1, h1) rect2 = pygame.Rect(x2, y2, w2, h2) if rect1.colliderect(rect2): # Perform collision handling
Si vous Si vous travaillez avec des images (représentées sous forme d'objets pygame.Surface), vous pouvez obtenir leurs rectangles de délimitation à l'aide de la méthode get_rect(). N'oubliez pas d'ajuster la position du rectangle en spécifiant la coordonnée supérieure gauche souhaitée.
player_rect = player_img.get_rect(topleft=(x, y)) thing_rect = thing_img.get_rect(topleft=(thing_x, thing_y)) if player_rect.colliderect(thing_rect): # Perform collision handling
Pour ajouter un délai au début du jeu, utilisez pygame.time.get_ticks( ). Cette fonction renvoie le temps écoulé depuis l'appel de pygame.init(). Par exemple, pour démarrer le jeu après 100 secondes :
start_time = 100 * 1000 # Start time in milliseconds (100 seconds) passed_time = pygame.time.get_ticks() if passed_time < start_time: # Display a loading screen or message else: # Start the game loop
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!