iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – SpriteKit节点坚持场景/不弹跳大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我搜索过这个,我认为必须有一些参数来解决这个问题,但我没有找到它. 我在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很高兴我可以帮忙:)

大佬总结

以上是大佬教程为你收集整理的ios – SpriteKit节点坚持场景/不弹跳全部内容,希望文章能够帮你解决ios – SpriteKit节点坚持场景/不弹跳所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。