首页 / JAVA / java-如何创建漩涡/漩涡效果?
java-如何创建漩涡/漩涡效果?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-如何创建漩涡/漩涡效果?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1518字,纯文字阅读大概需要3分钟。
内容图文
![java-如何创建漩涡/漩涡效果?](/upload/InfoBanner/zyjiaocheng/691/9b50bb4ac7f642779e3a03261cd81572.jpg)
我试图在作为传感器的圆形物体上产生漩涡效果.
我一直在寻找它,我寻找的所有示例都在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);
这完全停止了身体的当前运动.我将从删除该行开始.另外,为了获得更好的逼真的行为,您可以按照正确的公式来计算吸引力,如下所示:
force = mass1 * mass2 * [some constant] / (distance ^ 2)
当具有从身体到黑洞的向量(计算为黑洞位置-身体位置)时,向量的长度就是该距离,并且在对力进行归一化并乘以后,便得到了所需的forceX和forceY力向量只要它保持在孔的范围内,每次更新都需要将其应用于身体.
但是,此公式将使力随着物体靠近孔而增大到无穷大,因此如果引起任何麻烦,您可以尝试更改为线性转换(最接近= 1,最接近= 0).
force = mass1 * mass2 * [some constant] * ( (maxDistance - distance) / maxDistance )
内容总结
以上是互联网集市为您收集整理的java-如何创建漩涡/漩涡效果?全部内容,希望文章能够帮你解决java-如何创建漩涡/漩涡效果?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。