def on_road(self, car, screen): Ox = 32 Oy = 16 center_world_x = int(self.screen_width / 2) center_world_y = int(self.screen_height / 2) bot_right_x = center_world_x + int(Ox * cos(radians(-car.angle))) - int(Oy * sin(radians(-car.angle))) bot_right_y = center_world_y + int(Ox * sin(radians(-car.angle))) + int(Oy * cos(radians(-car.angle))) bot_left_x = center_world_x - int(Ox * cos(radians(-car.angle))) - int(Oy * sin(radians(-car.angle))) bot_left_y = center_world_y - int(Ox * sin(radians(-car.angle))) + int(Oy * cos(radians(-car.angle))) top_left_x = center_world_x - int(Ox * cos(radians(-car.angle))) + int(Oy * sin(radians(-car.angle))) top_left_y = center_world_y - int(Ox * sin(radians(-car.angle))) - int(Oy * cos(radians(-car.angle))) top_right_x = center_world_x + int(Ox * cos(radians(-car.angle))) + int(Oy * sin(radians(-car.angle))) top_right_y = center_world_y + int(Ox * sin(radians(-car.angle))) - int(Oy * cos(radians(-car.angle))) if (np.array_equal(screen.get_at((bot_right_x, bot_right_y)), self.bkd_color) or np.array_equal (screen.get_at((bot_left_x, bot_left_y)), self.bkd_color) or np.array_equal(screen.get_at((top_left_x, top_left_y)), self.bkd_color) or np.array_equal(screen.get_at((top_right_x, top_right_y)), self.bkd_color)): Collision.offroad(car) return False else: return True