gpt4 book ai didi

ios - 在 Xcode Spritekit 中缩放物理体

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:00:28 25 4
gpt4 key购买 nike

我最近遇到一个问题,我会增加节点的大小,但物理体会保持相同的大小。我试图寻找解决方案,但没有成功。如何使主体随节点大小缩放?

CGPoint location = CGPointMake(randX, -self.frame.size.height - expander.size.height);

SKAction *moveAction = [SKAction moveTo:location duration:randDuration];

SKAction *expandAction = [SKAction resizeToWidth:(expander.size.width * 1.4) height:(expander.size.width * 1.4) duration:1.0];

SKAction *collapseAction = [SKAction resizeToWidth:(expander.size.width) height: (expander.size.height) duration:1.0];

SKAction *doneAction = [SKAction runBlock:(dispatch_block_t)^() {
expander.hidden = YES;
}];

SKAction *expandCollapseAction = [SKAction repeatActionForever:[SKAction sequence:@[expandAction, collapseAction]]];

SKAction *moveExpandAction = [SKAction group:@[moveAction, expandCollapseAction]];

SKAction *moveExpanderActionWithDone = [SKAction sequence: @[moveExpandAction, doneAction ]];
[expander runAction:moveExpanderActionWithDone withKey: @"expanderMoving"];

最佳答案

我以为这行不通,但看起来物理体毕竟是按比例缩放的。这是可以在 iOS8 上重现物理 body 缩放的代码:

- (void)didMoveToView:(SKView *)view {
/* Setup your scene here */

SKSpriteNode *s = [SKSpriteNode spriteNodeWithColor:[SKColor yellowColor] size:CGSizeMake(100,100)];
s.position = CGPointMake(CGRectGetMidX(self.frame), CGRectGetMinY(self.frame)+100);
s.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:s.size];

s.physicsBody.dynamic = YES;

s.physicsBody.affectedByGravity = NO;

[self addChild:s];

[s runAction:[SKAction scaleTo:0.3f duration:5]];

[s.physicsBody applyImpulse:CGVectorMake(0,30)];

}

如果我没记错的话,这在之前是行不通的,但我只是试了一下,看起来它行得通。尽管如此,这还没有经过全面测试,我不确定这是否会扰乱物理模拟。接触检测可能会起作用。我只是想展示当 sprite 被缩放时,实际的物理体也会被缩放。这是结果:

scaling physics body

从上面的 gif 图中可以看出,物理体随 sprite 一起缩放(无需重新创建另一个不同大小的物理体)。 Sprite 周围的蓝色边界框是 Sprite 物理体的视觉表示(在 View Controller 中启用 skView.showsPhysics = YES);

关于ios - 在 Xcode Spritekit 中缩放物理体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24638086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com