- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试在作为传感器的圆形体上产生涡流效果。我一直在寻找这个,我寻找的所有示例都是用 C++ 或 Objective C 编写的,但我似乎没有很好地翻译它们。
当我的对象发生碰撞时,它会调用 beginContact(..) 并设置一个标志,以便我可以调用 bodyToUpdate.applyForce(...);
public void beginContact(Contact contact) {
setColliding(true);
}
//updating collition every frame
public void act(){
if (colliding) {
ball.getBody().applyForce(....);
}
如何计算每一帧施加的力以使其成为漩涡?
编辑:
所以我现在让物体直接进入漩涡中心,但没有“旋转”
public void act() {
if (colliding) {
ball.getBody().setLinearVelocity(0, 0);
ball.getBody().applyForce((portal.getBody().getPosition().x - ball.getBody().getPosition().x) * i,
(portal.getBody().getPosition().y - ball.getBody().getPosition().y) * i,
ball.getBody().getPosition().x, ball.getBody().getPosition().y, true);
i++;
} else
i = 10;
}
最佳答案
如果“旋转”意味着下落的物体会沿着曲线或螺旋运动,而不是立即改变运动方向朝向黑洞,那么有一个简单的解决方案。
ball.getBody().setLinearVelocity(0, 0);
这完全停止了 body 当前的运动。我首先删除该行。此外,为了获得更好的现实行为,您可以遵循正确的公式来计算吸引力,如下所示:
force = mass1 * mass2 * [some constant] / (distance ^ 2)
当你有从你的 body 到黑洞的 vector (计算为黑洞位置 - body 位置
)时, vector 的长度就是距离,在归一化并乘以力之后,您就有了所需的 forceX
和 forceY
力 vector ,每次更新时都需要将其应用于主体,只要它保持在孔的范围内即可。
但是,当物体靠近孔时,这个公式会导致力增长到无穷大,因此如果这会引起任何问题,您可以尝试更改为线性转换(最近 = 1,最远 = 0)。
force = mass1 * mass2 * [some constant] * ( (maxDistance - distance) / maxDistance )
关于java - 如何创造漩涡/漩涡效果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25940650/
我在创建/理解 promise 方面遇到了困难。我了解它们的优点并了解如何使用它们。创建自己的 promise 功能是困难的部分。简单地说,如何将此函数转换为与 Promise 一起使用: ret.g
这是我以前的question的跟进 假设我想用我的函数创建一个future,但是不想立即启动它(即我不想调用val f = Future { ... // my function}。 现在,我可以看到
使用以下函数表示从本地 html 文件生成 Web 存档 function TLessonConstructor2.CreateMHT( const FileName : string):boolea
我正在研究注册安全。 @RestController public class UserController { @Autowired private BCryptPasswordEncoder bC
在下面的示例代码中,我想创建一个 Item来自 Component 的对象: struct Component { }; struct Item { explicit Item(Compone
我有以下代码。我认为通过发布我可以创建一个热流,但是每个连接上的 uniqueId 都不同。我希望 create 方法执行一次,然后作为任意数量的订阅者的热流运行。 private Date
我有以下型号 type User struct { gorm.Model Languages []Language `gorm:"many2many:user_language
我想做的是用管道创建这种通信: 1 / \ 3 2 \ / 4 所以应该有3个 child 。 parent 给第一个和第二个 child
我正在将一些代码从 Win32 移植到使用锁定文件的 Linux。我用 open 为 Linux 做了一个实现,但我不确定如果文件在 Samba 共享上它是否会工作。我试过了,它似乎可以正常工作,但我
我是一名优秀的程序员,十分优秀!