如何将重力设置到任何身体或屏幕中心?我想知道这是逻辑......
我有两个圆体aBody是staticBody,bBody是动态的和世界gravity(0,0)
。
答案 0 :(得分:2)
你要做的就是施加一个用屏幕中心模拟重力的力(让我们想象一下,在中心有非常非常重的物体会拉动其他物体)。
这个等式众所周知且易于实现 - look here to read about it。
有了等式,你只需要实现它:
Body body, centerBody;
Vector2 center = new Vector2(0, 0);
...
//in render method
float G = 1; //modifier of gravity value - you can make it bigger to have stronger gravity
float distance = body.getPosition().dst( center );
float forceValue = G / (distance * distance);
Vector2 direction = center.sub( body.getPosition() ) );
body.applyForce( direction.scl( forceValue ), body.getWorldCenter() );
当然你可以修改重力中心"修改中心 Vector2。