Вот мой код обнаружения столкновений (обезжиренный при необходимости):Спрайтов встречные, но мяч не отскакивает в обратном направлении
if pygame.sprite.spritecollide(my_ball, ballGroup, False):
Ball.speed[1] = -Ball.speed[1]
print '1'
Ball.move()
if pygame.sprite.spritecollide(dad, ballGroup, False):
Ball.speed[1] = -Ball.speed[1]
Ball.move()
Программа говорит мне два спрайта встречные (print '1'
в коде), поэтому шар в этом коде (так называемый Ball
) должен «отскакивать» от другого спрайта в противоположном направлении. Но он просто проходит через спрайт, а не подпрыгивает. Почему это происходит?
Это немного сбивает с толку. У вас есть класс под названием «Бал», а затем вы определяете «Бал» как экземпляр «Puck». Классы 'Ball' и' myBall' также идентичны. Я бы добавил еще некоторую отладку, например. напечатайте 'Ball.speed' при столкновении, но до и после его изменения. – elParaguayo
Это потому, что оба класса предназначены для хоккейного весла первого игрока и хоккейного весла второго игрока. Они должны быть одинаковыми для справедливой игры. –
Да, но это точно моя точка: если они идентичны, вы можете просто создать свои объекты 'my_ball' и' Dad', используя тот же класс «Ball». – elParaguayo