- Созданные круги движутся по экрану, изменяя координаты на основе значений «гравитации» или «отскока», изменяющих скорость в заданном направлении.
- У меня возникли проблемы с применением этой логики к более чем двум объектам.
- Я пытаюсь выполнить один цикл по списку созданных объектов.
- Затем второй вложенный цикл снова проходит по этому списку.
- Во втором цикле я пытаюсь проверить расстояние от одного объекта до другого.
- Проблема в том, что при наличии более 20 объектов он замедляется, так как ему приходится вычислить расстояние от одного объекта до другого одновременно во время его работы
Большое спасибо!
Это работает для 2 созданных объекта:
def collisionDetection(objectOne,objectTwo):
euclidianDistance = ((objectOne.x-objectTwo.x)**2+(objectOne.y-objectTwo.y)**2)**0.5
if(abs(euclidianDistance)0):
for i in range(n):
print(f'Current [x] [y] coordinates for objects {ballObjects.ballNumber} are: [{ballObjects.x}] [{ballObjects.y}]')
for x in range(i+1,n):
collisionDetection(ballObjects, ballObjects[x])
Подробнее здесь: https://stackoverflow.com/questions/791 ... -detection
Мобильная версия