Ios 如何有效地使用';设备运动';使用CMMotionManager强制球在圆形边界内移动?

Ios 如何有效地使用';设备运动';使用CMMotionManager强制球在圆形边界内移动?,ios,game-physics,chipmunk,gyroscope,uiaccelerometer,Ios,Game Physics,Chipmunk,Gyroscope,Uiaccelerometer,我正在使用。 我有我的空间设置,一个球和一堆段(在我的例子中是512段)连接在一起形成一个圆 我的目标是当用户移动设备时,迫使球在该圆圈内移动。 用户移动设备的速度越快,球在圆圈中移动的速度就越快。球也必须遵循所有物理定律 我从CMMotionManager获得重力和用户加速组件,但无法从中获得一些意义 我尝试手动施力,效果很逼真,但我无法根据用户移动设备的程度在圆圈中移动球。 就像我把一个小球放在一个玻璃杯里,摇动玻璃杯,当没有外力移动/倾斜玻璃杯时,小球将在玻璃杯的圆形底部移动,并朝着玻璃倾

我正在使用。 我有我的空间设置,一个球和一堆段(在我的例子中是512段)连接在一起形成一个圆

我的目标是当用户移动设备时,迫使球在该圆圈内移动。 用户移动设备的速度越快,球在圆圈中移动的速度就越快。球也必须遵循所有物理定律

我从CMMotionManager获得重力和用户加速组件,但无法从中获得一些意义

我尝试手动施力,效果很逼真,但我无法根据用户移动设备的程度在圆圈中移动球。
就像我把一个小球放在一个玻璃杯里,摇动玻璃杯,当没有外力移动/倾斜玻璃杯时,小球将在玻璃杯的圆形底部移动,并朝着玻璃倾斜的方向静止。我认为最简单的方法就是改变空间的重力以匹配加速计。要获得平滑的圆周运动,最好使用最小距离为0、最大距离为要旋转的圆半径的CPSLIDE关节。否则就不可能做出平滑的空心形状。您必须使用许多线段构建它,这可能不太好。

我尝试使用Cslidejoint,但这是无法承受的,因为我希望球停留在圆的边界,以防Cslidejoint球在重力快速变化的情况下离开圆。然后我使用了销接头,所以半径保持不变,但这里的问题是如何停止球,因为没有办法给球提供一些摩擦力,所以当用户停止移动设备时,球就会停止。我添加了线段以形成圆形边框,但效果不理想。有什么想法吗?