gpt4 book ai didi

objective-c - SpriteKit 动态 Body 怎么可能穿过 StaticBody?

转载 作者:搜寻专家 更新时间:2023-10-30 19:47:28 25 4
gpt4 key购买 nike

您好,我的 SpriteKit 游戏出现了奇怪的效果。

我在屏幕周围有一堵墙,我使用 bodyWithEdgeLoopF​​romRect 创建了 staticbody

通过执行 skView.showsPhysics = YES; 所有物体也会显示在屏幕上。

我在屏幕上有一个球。其中有 dynamic body。有时当我提供 Force 让它穿过那堵静态墙时!!!

这怎么可能??

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

我还为两个 物理体 赋予了 usesPreciseCollisionDetection = YES; 属性。但这并不能阻止这个问题。

我怎样才能避免这个问题?

最佳答案

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

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

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

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

以上将对象的右移动限制为 100,同时保持 dy(向上和向下)速度不变。

关于objective-c - SpriteKit 动态 Body 怎么可能穿过 StaticBody?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31613608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com