Функция pygame.Rect.colliderect () не выполняется

1
задан Dovid Tor Sdayur 5 March 2019 в 17:12
поделиться

1 ответ

1116 Все дело в порядке.

food.update(snake) проверяет, сталкивается ли еда с коктейлем, и помещает еду в новое положение.
snake.update(food) Испытание: змея сталкивается с пищей и добавляет к змею сегмент.

Таким образом, если food.update(snake) будет выполнено до snake.update(food), то змея никогда не будет есть пищу, потому что еда удалена раньше:

food.update(snake)
snake.update(food)

snake.update(food)
food.update(snake)

Змея никогда не находится в том положении, в котором она нарисована, потому что змея вытягивается self.draw_snake() до того, как ее перемещают self.movement().

Вы должны сделать это в следующем порядке:

  1. Переместить змею
  2. Проверьте, есть ли змея на еде
  3. Нарисуйте змею [1114 ]
class Snake(object):

    # [...]

    def update(self,food):
        self.movement()
        self.add_segment(food)
        self.draw_snake()
0
ответ дан Rabbid76 5 March 2019 в 17:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: