作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的场景中有两个节点。第一个节点是我 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/
我的场景中有两个节点。第一个节点是我 View 顶部的一个球。第二个节点是我 View 底部的一个矩形,用于阻止球掉出 View 。我希望这个球完全没有弹性。我希望它在碰到矩形时完全停止。我不知道我做
我是一名优秀的程序员,十分优秀!