gpt4 book ai didi

ios - 强制停止后将位置设置为 SKSpriteNode(即设置速度 0)

转载 作者:行者123 更新时间:2023-11-28 17:51:58 24 4
gpt4 key购买 nike

我在游戏中出现奇怪的行为。我有一个 SKSpriteNode。在对我的 SKSpriteNode 施加 force 之后,由于 force 的作用,我的 SKSpriteNode 开始移动(即 mySpriteNode .physicsBody.isResting == NO).

场景:

当球停止时,它是模拟的(即 mySpriteNode.physicsBody.isResting == YES),我将任何 position 给 mySpriteNode。这非常有效。

但是,

当 mySpriteNode 正在移动时(即 mySpriteNode..physicsBody.isResting == NO)并且我给 mySpriteNode velocity 0 并且它停止了(即 mySpriteNode..physicsBody.isResting == YES)。但是当我给它任何 position 时,它没有任何效果。

mySpriteNode 的 position 保持在我给 0 velocity 的位置。

有什么想法吗?

最佳答案

当我在 Action block 完成中重新定位 sprite 时,它​​非常适合我。

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

sprite.xScale = 0.5;
sprite.yScale = 0.5;
sprite.position = CGPointMake(self.size.width/2.0, self.size.height/2.0);
sprite.physicsBody = [ SKPhysicsBody bodyWithRectangleOfSize:sprite.size];

SKAction *act1 = [SKAction runBlock:^{
[sprite.physicsBody applyImpulse:CGVectorMake(0, 100)];
}];

SKAction *act2 = [SKAction waitForDuration:2];
SKAction *act3 = [SKAction runBlock:^{
[sprite.physicsBody setVelocity:CGVectorMake(0, 0)];
}];
SKAction *seq = [SKAction sequence:@[act1,act2,act3]];
[sprite runAction:seq completion:^{
sprite.position = CGPointMake(self.size.width/2.0, self.size.height/2.0);
}];


self.physicsWorld.gravity = CGVectorMake(0, 0);

尝试在 Action 的完成 block 中重新定位。

关于ios - 强制停止后将位置设置为 SKSpriteNode(即设置速度 0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30235649/

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