Maison >développement back-end >Tutoriel Python >Pourquoi ma détection de collision Pygame renvoie-t-elle toujours vrai et pourquoi la position de mon image est-elle toujours (0, 0) ?
Problème de détection de collision : toujours renvoyer « Vrai »
L'un des La raison la plus courante pour laquelle une fonction de détection de collision renvoie « Vrai » alors qu'elle ne devrait pas utiliser des informations de coordonnées incorrectes. Dans votre code, les sprites Ball et Obstacle ont des attributs x et y supplémentaires, mais la méthode get_rect() de l'objet Surface ne met pas automatiquement à jour sa position en fonction de ces attributs.
Solution :
Pour résoudre ce problème, vous devez définir manuellement la position du rectangle en utilisant l'argument mot-clé topleft lors de l'appel get_rect() :
self.rect = self.image.get_rect(topleft=(self.x, self.y))
Problème de positionnement de l'image : retour toujours (0, 0)
Par défaut, les coordonnées de l'objet Surface sont toujours définies sur ( 0, 0), quel que soit l’endroit où il est affiché sur l’écran. Lorsque vous affichez l'image sur l'écran du jeu, vous devez fournir les coordonnées correctes à l'endroit où vous souhaitez qu'elle soit dessinée.
Solution :
Vous pouvez simplement utiliser les coordonnées stocké dans l'attribut rect lors du blitting de l'image :
gameDisplay.blit(self.image, self.rect)
Supplémentaire Conseils :
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!