Я создаю игру-головоломку, в которой вы должны перемещать объект вокруг препятствий, чтобы достичь своей цели. Однако по какой-то причине объекты перекрываются, когда я использую CGRectIntersectsRect. Я хочу, чтобы объекты останавливались, когда они касаются краев друг друга, а НЕ когда они перекрывают друг друга. Текущий код выглядит следующим образом:
-(void)objectObstacleCollision {
if (CGRectIntersectsRect(object.frame, obstacle1.frame)) {
xMotion = 0;
yMotion = 0;
if (objectMovingUp == YES) {
objectCrashedUp = YES;
objectMovingUp = NO;
if (objectCrashedUp == YES && objectMovingUp == NO) {
up.hidden = YES;
down.hidden = NO;
right.hidden = NO;
left.hidden = NO;
}
}
Это приводит к тому, что объекты перекрываются при ударе, что вызывает проблемы при попытке переместить объект в другом направлении. После многих разных попыток, на всю жизнь, я не могу заставить объект остановиться, когда он касается краев с препятствиями. Как я могу добиться этого?