Я разрабатываю игру, где мне нужно обнаружить столкновение между двумя объектами (платформой и мячом):
platform = [[UIImageView alloc]initWithFrame:CGRectMake(150, 300, 60, 15)];
[platform setImage:[UIImage imageNamed:@"barrinha.png"]];
[platform setCenter:CGPointMake(150, 330)];
[platform setUserInteractionEnabled:YES];
[pit addSubview:platform];
ball = [[UIImageView alloc]initWithFrame:CGRectMake(150, 300, 15, 15)];
[ball setImage:[UIImage imageNamed:@"ball.png"]];
[pit addSubview:ball];
Я использую этот код для его обнаружения:
//EDIT FROM HERE
if (CGRectIntersectsRect(ball.frame, platform.frame)){
pos.y = -pos.y;
}
//TO HERE
Проблема в том, что он обнаруживает столкновение на верхней и нижней стороне платформы, но по бокам от нее. При боковом столкновении мяч попадает на платформу и продолжает дрожать внутри, пока не выйдет.
Комментарий к РЕДАКТИРОВАНИЮ: Итак, как вы можете видеть, я просто заставляю его менять направление. Так что нет, мне нужна помощь в том, что было бы лучшим способом найти способ справиться с боковыми столкновениями.
Я уже пытался использовать код Джо Блоу , но он действительно работает для объектов, имеющих одинаковую ширину и высоту.
Так что я хотел бы сейчас, если у вас, ребята, есть какие-нибудь идеи, чтобы помочь мне с этим вопросом.
Живи долго и процветай, парни.