gpt4 book ai didi

iOS SpriteKit 弹力

转载 作者:行者123 更新时间:2023-11-29 02:57:42 27 4
gpt4 key购买 nike

我的场景中有两个节点。第一个节点是我 View 顶部的一个球。第二个节点是我 View 底部的一个矩形,用于阻止球掉出 View 。我希望这个球完全没有弹性。我希望它在碰到矩形时完全停止。我不知道我做错了什么。任何帮助将不胜感激!

SKSpriteNode *rectangle = [SKSpriteNode spriteNodeWithColor:[UIColor whiteColor] size:CGSizeMake(self.frame.size.width, 50)];

bottom.position = CGPointMake(self.frame.size.width / 2, 0);
bottom.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(rectangle, bottom.size.height)];
bottom.physicsBody.dynamic = NO;
[self addChild:bottom];



SKSpriteNode *ball = [SKSpriteNode spriteNodeWithImageNamed:@"ball"];
ball.position = CGPointMake(node.position.x, node.position.y);
ball.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius: 5];
ball.physicsBody.restitution = 0;

CGMutablePathRef path = CGPathCreateMutable();
CGPathMoveToPoint(path, NULL, 0, 0);
CGPathAddLineToPoint(path, NULL, [self randomX], [self randomY]);

SKAction *move = [SKAction followPath:path asOffset:YES orientToPath:NO duration:3.0];


[ball runAction:move];

[self addChild: ball];

为什么 仍然从矩形弹回?

最佳答案

根据我的经验,在更多情况下,您应该像他们期望的那样使用框架,黑客最终会出现像您遇到的那样奇怪的怪癖。在这种情况下,正如@LearnCocos2D所说,如果您需要球沿着特定路径移动但仍保持动态的物理体,您可能应该使用[ball.physicalsBody applyImpulse:(CGVEctor)]。如果随后将恢复设置为 0,则不会反弹。我保证。

如果您需要球遵循特定路径,请阅读向量和向量数学(无论如何,在研究物理时掌握这些知识都是很好的)。我找到了 this成为一个很好的资源。它适用于 openFrameworks,因此适用于 C++,但概念保持不变。

如果您仍然确实需要使用 CGPath,那么我认为您应该更具体地告诉我们您需要完成的任务。可能有更好的解决方案,或者我们应该向 Apple 提交错误。 Sprite-Kit 还很年轻,我自己也遇到过我认为是错误的问题。

关于iOS SpriteKit 弹力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23701468/

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