我在SpriteKit中有一个场景,我想要一些圈子/球反d,并保持任何速度无限期.他们应该从现场的边缘反d.
如果移动得足够快,或者以相当锐利的角度进行,这是正常的工作,但是如果速度变慢并且靠近边缘的飞机,它们会继续移动(这是很好的),但是他们“坚持”到边缘.这个粘贴是我不想要的.即使走得很慢也应该反d.
为了设置边缘,我使用:
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;
我在场景中的重力在零.我给节点增加了一个冲动,他们开始d跳 – 似乎非常接近,随着物体反d,但是如果有任何一个缓慢移动并以较浅的角度进入,他们“拥抱”边缘.我会尝试包括下面的图示来帮助可视化.
http://i.imgur.com/Rpr7luY.png
我已经尝试玩很多PhysicsBody设置,但不能让事情停止粘贴.
谢谢!
解决方法 正如所提到的那样,this answer可以直观地被看作是朝着正确方向迈出的一步,但问题是整个SpriteKit物理引擎.这是非确定性的,分数在计算中丢失,造成不精确的模拟.简单的答案是使用Box2D.黑客的答案是在相反的方向施加冲动.
All details are highlighted in my other answer.
@Jurik很高兴我可以帮忙:)
总结以上是内存溢出为你收集整理的ios – SpriteKit节点坚持场景/不d跳全部内容,希望文章能够帮你解决ios – SpriteKit节点坚持场景/不d跳所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)