加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ios – SpriteKit节点坚持场景/不弹跳

发布时间:2020-12-15 01:41:16 所属栏目:百科 来源:网络整理
导读:我搜索过这个,我认为必须有一些参数来解决这个问题,但我没有找到它. 我在SpriteKit中有一个场景,我想要一些圈子/球反弹,并保持任何速度无限期.他们应该从现场的边缘反弹. 如果移动得足够快,或者以相当锐利的角度进行,这是正常的工作,但是如果速度变慢并且靠
我搜索过这个,我认为必须有一些参数来解决这个问题,但我没有找到它.

我在SpriteKit中有一个场景,我想要一些圈子/球反弹,并保持任何速度无限期.他们应该从现场的边缘反弹.

如果移动得足够快,或者以相当锐利的角度进行,这是正常的工作,但是如果速度变慢并且靠近边缘的飞机,它们会继续移动(这是很好的),但是他们“坚持”到边缘.这个粘贴是我不想要的.即使走得很慢也应该反弹.

为了设置边缘,我使用:

SKPhysicsBody *borderBody = [SKPhysicsBody bodyWithEdgeLoopFromRect:self.frame];
self.physicsBody = borderBody;
self.physicsBody.friction = 0.0;
self.physicsBody.restitution = 1.0;
self.physicsBody.linerDamping = 0.0;
self.physicsBody.angularDamping = 0.0;
self.physicsBody.affectedByGravity = NO;

而在圆形节点上,我有类似的设置,如:

ball.usesPresciseCollisionDetection = YES;
ball.dynamic = YES;
ball.restitution = 1.0;
ball.linearDamping = 0.0;
ball.angularDamping = 0.0;
ball.friction = 0.0;

我在场景中的重力在零.我给节点增加了一个冲动,他们开始弹跳 – 似乎非常接近,随着物体反弹,但是如果有任何一个缓慢移动并以较浅的角度进入,他们“拥抱”边缘.我会尝试包括下面的图示来帮助可视化.

http://i.imgur.com/Rpr7luY.png

我已经尝试玩很多PhysicsBody设置,但不能让事情停止粘贴.

谢谢!

解决方法

正如所提到的那样,this answer可以直观地被看作是朝着正确方向迈出的一步,但问题是整个SpriteKit物理引擎.这是非确定性的,分数在计算中丢失,造成不精确的模拟.

简单的答案是使用Box2D.黑客的答案是在相反的方向施加冲动.

All details are highlighted in my other answer.

@Jurik很高兴我可以帮忙:)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读