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

雪碧与物体相撞不掉落?

罗波鸿
2023-03-14

我正在用LibGDX做一个游戏,还有LibGDX,它附带的Box2D包装器。具体来说,我的游戏是2D侧滚。

我的问题是我的玩家雪碧。我需要玩家非常精确的移动,所以我决定设置它,当玩家按下箭头键时,它会调用playerBody。setLinearVelocity(),然后当他们停止按键时,它会将他们的线速度重置为0。

在我的游戏中,我有重力。为了确保玩家在左右移动时摔倒,我创建了方法run()

public void run(float x) {
    playerBody.setLinearVelocity(x, playerBody.getLinearVelocity().y);
}

当我的球员自由落体时,这很好用。然而,当我的玩家碰到任何静止的物体(包括垂直的墙壁)时,只要我按住箭头键,它们就会停止下落。

有人知道为什么会这样吗?提前谢谢。

此外,这是我对球员身体的摩擦力、密度和恢复:

friction = 0.1f
restitution = 0.01f
density = 0.4f

共有1个答案

盖晋
2023-03-14

我认为你的玩家身体是动态的,动态的身体有一个与所有静态物体碰撞的属性。所以,如果你看看你的运行方法,你正在传递你当前玩家的玩家的前一个LinearVelSpeed(). yLinearVelSpeed()。所以,当你的玩家的身体与一个静态物体碰撞时,它的速度变成了0,碰撞后,如果它的速度()。y变成了0,并且你继续在你的playerB中传递那个0ody.setLinearVelester,你的身体就不会移动了。事情就是这样发生的。

public void run(float x) {
    playerBody.setLinearVelocity(x, 0);
}

碰撞后。我想如果你以速度()通过重力。y位置。我想这会解决你的问题。

public void run(float x) {
    playerBody.setLinearVelocity(x, gravity.y);
}
 类似资料:
  • 当我在中创建一个场景时,我经常需要两个节点在完全相同的或位置来创建一面墙。我添加了矩形物理体。它们都没有任何摩擦。 当我使一个spritendode在这些碰撞体上移动时(我对物理体使用冲量),它的行为就像在两个矩形之间有一个屏障,我需要“推”节点或使其跳过边界。正如我所说的,这些节点彼此完全一致,因此节点应该能够平滑地通过它们。 有什么建议吗? 如果你需要我正在使用的任何代码/图片,请询问。 编辑

  • 我知道有将近5到6个类似于我正在做的问题,但是没有一个答案对我有帮助(如果我不是一个完全的新手,他们可能会帮助我),所以我会试着展示我的具体案例。 我试图在PyGame(Python lib)中做一个精灵碰撞测试,但是我不能让它工作,碰撞时我得到的都是“假”,它根本不起作用,我也不知道为什么,我已经连续搜索了两天。 在我的游戏中,我有对象玩家(我称之为“老兄”)和对象敌人(我称之为...“敌人”)

  • 问题内容: 我主要专注于图形方面,以创建一些2DGame。我看过/看过几本教程,但是没有一部教程那么令人满意。我已经有一个玩家(一个正方形)在屏幕上移动并与其他正方形碰撞。重力等。 如果在屏幕上看到的对象太多(30 * 20),则一切正常。但是,如果我将其增加到300 * 300,则该程序开始运行非常慢,因为它必须检查许多对象。 我真的不知道Minecraft之类的游戏如何与ALL THOSE块一

  • 我肯定我错过了一些非常明显的东西,但我是初学者,所以请不要压碎我。我的问题是我有一个视口比屏幕小的舞台。现在我也想直接用Sprite.draw(SpriteBatch)在屏幕上画一个雪碧。雪碧和舞台的位置不重叠。舞台画得很好,但是雪碧看不见。当我注释掉渲染方法中的stage.draw()部分时,雪碧是可见的。 代码:这是我的渲染方法: 在这里,我初始化相机和舞台(StalleHeight是一个in

  • 我有一个pygame精灵动画,其中精灵的位置和形状在整个特定的动画序列中发生变化(例如-攻击)。我如何为碰撞调整精灵的矩形? 我的图像:在动画的一部分中,我的精灵位于png图像文件的中心(96x64像素)。在动画的另一部分中,我的精灵靠近png图像文件的右侧(96x64像素)。在动画的另一部分中,精灵改变形状(由剑移动引起)。等等。 我是否必须进行一些数学运算和计算来调整动画每帧子画面的碰撞条件,

  • 我正在制作一个游戏,其中我有一个被创建为SKSpriteNode的球,它与一些我不想碰撞的物体发生碰撞。这是我的球: 我希望它检测到它已经与这个分数物理体接触,但实际上并没有碰撞: (circleOfRadius仅用于测试目的)每次我尝试检查碰撞时,它似乎都没有输出我希望它执行的操作: 本质上,我的橙色球是一个SKSphapeNode,它总是与我的分数物理体相撞。也可能是我球周围的两个物理体和分数