作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
您好,我的 SpriteKit
游戏出现了奇怪的效果。
我在屏幕周围有一堵墙,我使用 bodyWithEdgeLoopFromRect
创建了 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/
您好,我的 SpriteKit 游戏出现了奇怪的效果。 我在屏幕周围有一堵墙,我使用 bodyWithEdgeLoopFromRect 创建了 staticbody。 通过执行 skView.sh
我是一名优秀的程序员,十分优秀!