gpt4 book ai didi

android - 如何使用 box2d 在 Libgdx 中使重力居中

转载 作者:行者123 更新时间:2023-11-29 00:06:34 27 4
gpt4 key购买 nike

如何将重力设置到任何 body 或屏幕中心?我想知道这是逻辑..

我有两个圆体 aBody 是 staticBody,bBody 是动态的和 world gravity(0,0)

I wanna like this image

最佳答案

您所要做的就是施加一个力来模拟屏幕中心的重力(假设在中心有一个非常非常重的物体会拉动其他物体)。

方程式众所周知且易于实现 - 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() ) );
// Due to the comment below it seems that it should be rather:
Vector2 direction = new Vector2(center.x - body.getPosition().x, center.y - body.getPosition().y);

body.applyForce( direction.scl( forceValue ), body.getWorldCenter() );

当然你可以通过修改center Vector2来修改“重心”。

关于android - 如何使用 box2d 在 Libgdx 中使重力居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33381251/

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