Как правильно использовать apply_impulse?

1

Я только начинаю с библиотеки физики PyMunk. У меня возникли проблемы с использованием apply_impulse(). Я называю это следующим образом:

player.body.apply_impulse(player.body, (10,10), (10,10) )

Однако я получаю эту ошибку:

TypeError: apply_impulse() принимает не более 3 аргументов (4 данных)

Почему это и какой правильный способ вызвать apply_impulse()?

  • 0
    Не то чтобы я что-то знал о pymunk, но почему вы передаете player.body функции в player.body? и более того, может быть, у player.body есть два аргумента?
  • 0
    Потому что первая переменная apply_impulse является ссылкой на себя. Нет, player.body - это одна переменная, это «твердое тело» игрока. То есть класс, который содержит физические функции для объекта.
Показать ещё 4 комментария
Теги:
physics
pymunk

1 ответ

2
Лучший ответ

Когда вы вызываете функцию-член на свой объект, вам обычно не нужно передавать сам объект в качестве первого параметра. self находится в определении функции каждой функции-члена, но не в вызове функции.

посмотреть это сообщение: Какова цель самоуправления?

  • 0
    Вот и все, спасибо. Дурак я. Вы знаете, что, хотя, как начинающий программист Python, документация была немного запутанной в этом. Я имею в виду, он говорит «Вызовите функцию x с параметрами y и z», когда вам действительно нужно вызвать функцию x только с параметром z. Это сбивает с толку. / rant В любом случае, спасибо, что поправил это для меня. :)
  • 0
    Н.П. Я согласен, что с синтаксической точки зрения это не имеет особого смысла. Однако здесь есть дело с некоторыми другими проблемами неоднозначности, которые вы, вероятно, обнаружите, когда станете ближе знакомиться с объектно-ориентированным программированием, и в этот момент вы, вероятно, оцените ясность, обеспечиваемую этим подходом. :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню