我正在创建一个益智游戏,你必须在障碍物周围移动一个物体才能到达你的目标。但是,由于某种原因,当我使用 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;
}
}
这会导致物体在撞击时重叠,从而在尝试将物体朝不同方向移动时会出现问题。经过多次不同的尝试,对于我的生活,当它接触到有障碍物的边缘时,我无法让物体停下来。我怎样才能做到这一点?