Pygame: Перемещение спрайтов навстречу друг другу с препятствиями? - PullRequest
0 голосов
/ 20 января 2020

Я строю двухмерную RPG-систему на основе плиток в Pygame и в настоящее время пытаюсь заставить одну «сущность» двигаться к другой. На этом пути есть препятствия, но метод перемещения (направления) объекта потерпит неудачу (безвредно), если он достигнет одного. Существует также метод is_direction_clear (direction), который может определить, может ли направление быть перемещено.

Текущий код:

        x_dist = self.map_x-self.target.map_x
        y_dist = self.map_y-self.target.map_y         
        #If further in terms of x...
        if abs(x_dist) >= abs(y_dist):
            #...seek the target in the x direction
            if x_dist >= 0:
                self.move(3)
            elif x_dist <= 0:
                self.move(1)
        #If further in terms of y...
        elif abs(y_dist) >= abs(x_dist):
            #...seek the target in the y direction
            if y_dist >= 0:
                self.move(2)
            elif y_dist <= 0:
                self.move(0)

Таким образом, этот алгоритм позволяет одному объекту преследовать другой в вакууме, но они застряли, если врезались в стену и просто продолжали идти в нее.

Как заставить его обнаружить стену перед ней и go в другом направлении?

...