0

调整他的 skspritenode 的大小后,我对物理体的大小有疑问。

我的代码:

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]]];

问题:

skspritenode 已调整大小,但他的物理体不跟随。你有想法吗?

4

2 回答 2

4

比例只是一种视觉属性,它不适用于物理物体。除了创建具有适当缩放形状的新物体外,没有其他方法可以缩放物理物体。

于 2014-02-14T21:34:22.403 回答
0

通过@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];
于 2014-02-15T12:11:37.580 回答