Objective c 精灵套件-iOS 7.1更新后由于缩放而导致对象碰撞
并没有问题,但在iOS 7.1更新后,对象与2管道的间隙发生碰撞。以前有人说过,这可能是因为“yScale”,但我找不到解决方案 一些代码Objective c 精灵套件-iOS 7.1更新后由于缩放而导致对象碰撞,objective-c,xcode,scale,sprite-kit,ios7.1,Objective C,Xcode,Scale,Sprite Kit,Ios7.1,并没有问题,但在iOS 7.1更新后,对象与2管道的间隙发生碰撞。以前有人说过,这可能是因为“yScale”,但我找不到解决方案 一些代码 Pipe *pipe = [[Pipe alloc] initWithImageNamed:pipeImageName]; [pipe setCenterRect:CGRectMake(26.0/kPipeWidth, 26.0/kPipeWidth, 4.0/kPipeWidth, 4.0/kPipeWidth)]; [pipe setYSca
Pipe *pipe = [[Pipe alloc] initWithImageNamed:pipeImageName];
[pipe setCenterRect:CGRectMake(26.0/kPipeWidth, 26.0/kPipeWidth, 4.0/kPipeWidth, 4.0/kPipeWidth)];
[pipe setYScale:height/pipe.size.height];
[pipe setPosition:CGPointMake(320+(pipe.size.width/2), abs(pipeYOffset + (pipe.size.height/2)))];
pipe.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:pipe.size];
[pipe.physicsBody setAffectedByGravity:NO];
[pipe.physicsBody setDynamic:NO];
任何帮助都将不胜感激。谢谢大家!
Pipe *pipe = [[Pipe alloc] initWithImageNamed:pipeImageName];
[pipe setCenterRect:CGRectMake(26.0/kPipeWidth, 26.0/kPipeWidth, 4.0/kPipeWidth, 4.0/kPipeWidth)];
//set the physicsBody before X/Yscale
pipe.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:pipe.size];
[pipe setYScale:height/pipe.size.height];
[pipe setPosition:CGPointMake(320+(pipe.size.width/2), abs(pipeYOffset + (pipe.size.height/2)))];
[pipe.physicsBody setAffectedByGravity:NO];
[pipe.physicsBody setDynamic:NO];
这可能对你有帮助。
我认为这是ios7.1中的一个bug。我也有同样的问题,我的游戏今晚发布了,现在无法播放!那太糟糕了。 在我看来,iOS 7.0的旧行为是有缺陷的,因为PhysicsBodys不能与sprite进行缩放 自iOS7.1以来,物理体显然根据精灵的比例调整其大小。
我还不能100%确定这是否是真的,但我会很快发现的。只需下载Xcode更新,我会在完成一些测试后通知您。仅供参考,身体的形状不受xScale/yScale的影响。如果这就是问题所在。@learncoas2d谢谢你,那么我该怎么解决呢?还有为什么在iOS 7.1更新后会发生这种情况?谢谢,@Ender的回答解决了我们的问题。只需将physicsBody设置在X/Yscale之前。很高兴您已经解决了它。经过一些测试后,我可以确认物理实体现在可以和精灵一起缩放。