def timerFiredPlay(self): if (self.ball.x < self.maps.left or self.ball.x > self.maps.left + self.maps.width or self.ball.y < self.maps.top or self.ball.y > self.maps.top + self.maps.height): # Ball off map self.killBall() collided = pygame.sprite.spritecollide(self.ball, self.terrain, False, Terrain.collidedFn) if len(collided) > 0: elements = Terrain.manageCollision(self.ball, collided) for element, direction in elements: result = element.interactFromDir(self.ball, direction) if result == "score": self.score += element.points elif result == "win": self.nextLevel() elif result == "fly": self.ballFly(self.ball, element) elif result == "kill": self.killBall() self.ball.update(self.isKeyPressed)