Método para verificar se o pássaro ultrapassou a borda da janela ou colidiu com algo
(self)
| 88 | return self.__isAlive |
| 89 | |
| 90 | def checkCollision(self): |
| 91 | """ |
| 92 | Método para verificar se o pássaro ultrapassou a borda da janela ou colidiu com algo |
| 93 | """ |
| 94 | |
| 95 | # Recebe a posição do pássaro no background |
| 96 | position = list(self.__canvas.bbox(self.__tag)) |
| 97 | |
| 98 | # Se o pássaro tiver ultrapassado a borda de baixo do background, ele será declarado morto |
| 99 | if position[3] >= self.__height + 20: |
| 100 | self.__isAlive = False |
| 101 | |
| 102 | # Se o pássaro tiver ultrapassado a borda de cima do background, ele será declarado morto |
| 103 | if position[1] <= -20: |
| 104 | self.__isAlive = False |
| 105 | |
| 106 | # Dá uma margem de erro ao pássaro de X pixels |
| 107 | position[0] += int(25 / 78 * self.width) |
| 108 | position[1] += int(25 / 77 * self.height) |
| 109 | position[2] -= int(20 / 78 * self.width) |
| 110 | position[3] -= int(10 / 77 * self.width) |
| 111 | |
| 112 | # Define os objetos a serem ignorados em colisões |
| 113 | ignored_collisions = self.__canvas.getBackgroundID() |
| 114 | ignored_collisions.append(self.__birdID) |
| 115 | |
| 116 | # Verifica possíveis colisões com o pássaro |
| 117 | possible_collisions = list(self.__canvas.find_overlapping(*position)) |
| 118 | |
| 119 | # Remove das possíveis colisões os objetos ignorados |
| 120 | for _id in ignored_collisions: |
| 121 | try: |
| 122 | possible_collisions.remove(_id) |
| 123 | except BaseException: |
| 124 | continue |
| 125 | |
| 126 | # Se houver alguma colisão o pássaro morre |
| 127 | if len(possible_collisions) >= 1: |
| 128 | self.__isAlive = False |
| 129 | |
| 130 | return not self.__isAlive |
| 131 | |
| 132 | def getTag(self): |
| 133 | """ |
no test coverage detected