我对物理身体的大小有一个问题,因为他重新调整了身体的大小。
我的代码:
backTop.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:backTop.size];
[backTop.physicsBody setAffectedByGravity:NO];
[backTop.physicsBody setDynamic:NO];
[backTop.physicsBody setCategoryBitMask:kPipeCategory];
[backTop.physicsBody setCollisionBitMask:kPlayerCategory];
backTop.physicsBody.usesPreciseCollisionDetection = YES;
//SKAction
SKAction *scaleBackTopActionStart = [SKAction resizeToHeight:backTop.size.height+kPipeGap duration:kPipeScale];
SKAction *scaleBackTopActionEnd = [SKAction resizeToHeight:pipeTop.size.height duration:kPipeScale];
SKAction *scaleBackTopSequence = [SKAction sequence:@[[SKAction waitForDuration:kPipeScaleStartWait],scaleBackTopActionStart, scaleBackTopActionEnd, [SKAction waitForDuration:kPipeScaleWait]]];问题:
它的大小被调整了,但他的物理身体却没有跟上。你有什么主意吗?
发布于 2014-02-14 21:34:22
尺度只是一种视觉属性,它不适用于物理物体。除了创造一个具有适当比例形状的新身体之外,没有其他方法可以对一个物理体进行缩放。
发布于 2014-02-15 12:11:37
通过@LearnCocos2D注释,我发现了这个更改(更改高度元素并移动它):
SKSpriteNode *backTop = [SKSpriteNode spriteNodeWithColor:[UIColor whiteColor] size:CGSizeMake(pipeTop.size.width,pipeTop.size.height+kPipeGap)];
[backTop setCenterRect:CGRectMake(26.0/kPipeWidth, 26.0/kPipeWidth, 4.0/kPipeWidth, 4.0/kPipeWidth)];
[backTop setPosition:CGPointMake(self.size.width+(pipeTop.size.width/2), self.size.height-(pipeTop.size.height/2)+(kPipeGap/2))];
SKAction *scaleBackTopActionStart = [SKAction moveToY:backTop.position.y-kPipeGap/2 duration:kPipeScale];
SKAction *scaleBackTopActionEnd = [SKAction moveToY:backTop.position.y duration:kPipeScale];https://stackoverflow.com/questions/21789556
复制相似问题