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

objective-c – SpriteKit动态Body如何通过StaticBody进行隧道传

发布时间:2020-12-16 07:13:11 所属栏目:百科 来源:网络整理
导读:嗨,我在SpriteKit游戏中得到了一个奇怪的效果. 我的屏幕周围有一堵墙, 我使用bodyWithEdgeLoopF??romRect创建了staticbody. 通过做skView.showsPhysics = YES;所有的身体也显示在屏幕上. 我在屏幕上有一个球.哪个有动态的身体. 有时当我确实提供力量球时,它
嗨,我在SpriteKit游戏中得到了一个奇怪的效果.

我的屏幕周围有一堵墙,
我使用bodyWithEdgeLoopF??romRect创建了staticbody.

通过做skView.showsPhysics = YES;所有的身体也显示在屏幕上.

我在屏幕上有一个球.哪个有动态的身体.
有时当我确实提供力量球时,它通过throgh那个静止的墙!

这怎么可能??

虽然我可以在屏幕上看到两个身体,但动态球有时会穿过静止墙.

我还给出了usesPreciseCollisionDetection = YES;两个物理机构的财产.
但它并没有阻止这个问题.

我该如何防止这个问题?

解决方法

当物体的速度非常高时会发生这种情况.例如,如果您的球对象每帧以X 300的速度行进,那么它很可能无法检测到“墙”并移过它.

如果速度太高,将usesPreciseCollisionDetection设置为YES将无法解决此问题.

您应该对物体的速度应用速度限制.像这样的东西:

if(self.physicsBody.velocity.dx > 100)
    self.physicsBody.velocity = CGVectorMake(100,self.physicsBody.velocity.dy);

以上限制了物体向右移动到100,同时保持dy(向上和向下)速度.

(编辑:李大同)

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

    推荐文章
      热点阅读