我设置了一个楼梯和一个人,楼梯setGravityEnabled(false)以保持不下坠,人是下坠的,当人掉在楼梯上时,楼梯却被人撞得下落了,怎么才能让人掉在楼梯上时,楼梯仍然保持不动。
我之前也有这样的问题,我查到网上说的解决方法好像都是设置静态刚体setDynamic(true)
不过不知道是不是版本问题,我设了之后没有达到纹丝不动的墙之类的效果
然后我用PhysicsBody::createEdgeBox来创建physicsbody
这种physicsbody好像已设置为静态刚体了
ps:我用的是3.4版本,我也是新人,可能回答得比较偏面
关于静态刚体
静态刚体有两个目的。最初,它们被加入用来实现休眠功能。因为静态刚体不移动,Chipmunk知道让那些与静态刚体接触或者连接的物体安全的进入休眠。接触或连接常规游离刚体的物体从不允许休眠。静态刚体的第二个目的就是让Chipmunk知道,关联到静态刚体的碰撞形状是不需要更新碰撞检测数据的。Chipmunk也不需要操心静态物体之间的碰撞检测。通常所有的关卡几何图形都会被关联到一个静态刚体上除了那些能够移动的东西,例如平台或门等。在Chipmunk5.3版本之前,你要创建一个无限大质量的游离刚体,通过cpSpaceAddStaticShape()来添加静态形状。现在你不必这样做了,并且如果你想使用休眠功能也不应该这样做了。每一个空间都有一个专用的静态刚体,你可以使用它来添加静态形状。Chipmunk也会自动将形状作为静态形状添加到静态刚体上。
你好,后来我使用了
PhysicsBody::createEdgeSegment
来只在一堵墙就可以了。