当前位置: 首页 > 知识库问答 >
问题:

在Libgdx Java中使用force移动对象

狄飞鹏
2023-03-14

我的任务是使用LibGdx游戏引擎在java中创建自己的碰撞物理引擎。这是自上而下的,所以忽略重力。我一直在琢磨如何对物体施加力。我通过求速度随时间的变化来求加速度。下面是如何找到x分量的加速度:

    Vector2 velX = new Vector2();
public void update(){
    timer += Gdx.graphics.getDeltaTime();

    movementSpeed = 5 * Gdx.graphics.getDeltaTime();
    coordinates.x += vel.x;
    coordinates.y += vel.y;
    if( timer >= .5f && timer < 1){
        velX.x = vel.x;
    }
    if(timer >= 1){
        velX.y = vel.x;
        acceleration.x = (float) ((velX.y - velX.x)/ (1 - .5));
        timer = 0;
    }

velx是x速度,和velX是一个Vector2,用于在不同时间存储速度的x分量(我使用的是均值定理)。基本上,我已经找到了x分量的加速度。现在如果我施加一个力,我做加速度*质量。这就是我完全困惑的地方。

F=ma.是的,所以我能够得到一个力变量。但是我现在如何使用这个力来适当地影响速度。本质上,在施加一个力后,速度应该是偶然的。当它们是两个完全不同的变量(牛顿和米/秒)时,我如何从力的某个值改变速度。

非常感谢您的帮助。

共有1个答案

苍烨然
2023-03-14

对于初速v1和质量m1,初始动量p1=v1m1。(m1 m2)vf=m1v1也是真的,假设第二个物体的初始速度为0。这意味着两个物体的最终速度都是vf=m1*v1/m1 m2。

如果你打算与现实物理碰撞运动物体,我建议你一些先进的物理课程/教程。

 类似资料:
  • 问题内容: 我正在作为学习项目来开发2D游戏,但遇到了麻烦。我无法弄清楚如何使用JPanel(添加到JFrame)中的KeyListener移动Polygon对象。我已经尝试过frog.translate(int x,int y)方法,该方法不会更新位置。我也尝试过手动更改数组坐标。我的代码示例如下: /////////////////////// 问题答案: 这段代码有一个简单的问题: 每次绘制

  • 我正在为我的计算机科学课做一个项目,在这个项目中,我们使用pyplay在屏幕上移动一个物体。我不使用pygamesprites,而是导入到pygamesprites中的图像,并使用这些图像作为自定义sprites。当我试图在屏幕上移动兔子或“玩家”对象时,它似乎确实更新了位置。这是我试图改变位置的Player对象: 这是我用来运行游戏本身的类:

  • 我已经通过HTTP脚本记录器记录了一个脚本,但当我运行脚本时,我得到的对象移动到这里错误的登录事务的采样器上。当在记录的xml中搜索相同的请求时,我可以看到它给出了一个有效的输出。有人能告诉我为什么当我运行脚本时,只有它显示这个错误。请参考以下快照。 来自录制xml的请求:录制的\u请求\u正文 来自录制xml的请求头:录制的请求头 录制xml的请求-响应:录制的请求-响应 脚本请求:脚本请求正文

  • 注意: Adobe Muse 不再添加新增功能,并将于 2020 年 3 月 26 日停止支持。有关详细信息和帮助,请参阅 Adobe Muse 服务结束页面。 在 Muse 中使用“图层”面板 Muse 包括一个“图层”面板,可用于构建页面元素和组织网站设计。在本文中,您将了解“图层”面板,并找到能让项目更容易更新的策略。 了解图层 默认情况下,Muse 网站的每个页面都至少包含一个已命名的图层

  • 我正在尝试用Windowbuilder创建一个小程序,它只需在JPanel中绘制一个红色矩形(称为car1),并通过按箭头键来移动它;为了做到这一点,我将一个改变x位置的方法与箭头相关联,并调用Repait方法,但矩形根本不移动——因此,我可能会把KeyEvent和/或Repait搞砸。 每次按正确的箭头键移动并刷新面板时,我应该怎么做才能使矩形移动并刷新面板?

  • 我有一个名为“DisplayPanel”的类(它扩展了JPanel),我在那里画了一个正方形,它来自一个名为“square”的类(它扩展了JComponent)。如何使用键在JPanel中移动矩形? 正方形类有通常的绘制方法: “squarishThing”是一个普通矩形: 问题是:与“游戏库”不同,尝试“手动”做这样的事情是相当令人困惑的。我不知道“while循环”去哪里了。我试图在显示面板中放