【问题标题】:SKAction scale physicsBodySKA动作尺度物理身体
【发布时间】:2013-11-15 18:35:11
【问题描述】:

我真的不知道从哪里开始。我有一个圆圈的图像存储在 SKSpriteNodephysicsBody 中,它在创建时反映了它的大小。

我使用SKAction 来缩小图像的大小,而physicsBody 的大小保持不变。如何缩小physicsBody?

我的代码:

SKSpriteNode *sprite = [SKSpriteNode spriteNodeWithImageNamed:@"whiteball"];

    sprite.size = CGSizeMake(20, 20);
    sprite.position = CGPointMake(dx, CGRectGetHeight(self.frame)-dy);
    sprite.name = @"ball";
    sprite.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:sprite.size.width/2];

    [self addChild:sprite];

    SKNode *ballNode = [self childNodeWithName:@"ball"];

    if (ballNode != Nil){
        ballNode.name = nil;

        SKAction *delay = [SKAction waitForDuration:3];
        SKAction *scale = [SKAction scaleTo:0 duration:1]; // I want this to scale the physicsBody as well as the spriteNode...
        SKAction *remove = [SKAction removeFromParent];

        //put actions in sequence
        SKAction *moveSequence = [SKAction sequence:@[delay, scale, remove]];

        //run action from node (child of SKLabelNode)
        [ballNode runAction:moveSequence];
    }

【问题讨论】:

标签: objective-c sprite-kit skphysicsbody skaction


【解决方案1】:

如果你将物理体的大小设置为圆的大小,你可能会实现你想要的。

_circle = [SKSpriteNode spriteNodeWithImageNamed:@"cirlce"];
_circle.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:_circle.size.width/2];

【讨论】:

  • 这个答案是如何被接受的?这正是问题中的代码所做的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-10
  • 1970-01-01
  • 2012-02-27
相关资源
最近更新 更多