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

LibGdx-Box2d-跳跃

毋举
2023-03-14

我想创造一个像飞鸟一样的游戏。我想让玩家在屏幕上不断跳跃。我创造了这个代码,它不像一只扑翼鸟跳

代码:

float jump = 100; // Just example

if(Gdx.input.justTouched())
    body.applyForceToCenter(0, jump * delta, true);

问题是当用户在屏幕上快速点击时,玩家就像火箭一样被击中。当玩家跌倒时,跳跃更低。我该如何解决这个问题,并获得相同的跳跃强度?

我的解决方案:

    jumpTimer += delta;

    if(Gdx.input.justTouched()) {

        if (jumpTimer > jumpTime) {

            body.setLinearVelocity(body.getLinearVelocity().x, 0);
            body.applyForceToCenter(0, jump * delta, true);
        }

        jumpTimer = 0;
    }

共有1个答案

白念
2023-03-14

可以使用几种方法来实现这样的效果。

  • max-velocity是你在评论中提到的一个值
 类似资料:
  • 我正在使用LibGdx中的Box2D创建一个平台游戏。我有一个算法可以将瓷砖转换成固定装置。我用Contact Listener来判断球员是否在空中,但问题是,因为我使用的是相邻的固定装置, |瓷砖| |瓷砖| |瓷砖| 联系人侦听器在调用contact begin后调用contact end,当我通过相邻的互动程序并将MOB_AIR值设置为true时,即使我在地面上也无法跳跃。 代码的其他部分(

  • 我正在使用ContactListener测试box 2D中两个物体之间的碰撞 这是我在世界上使用的所有contactListener类。设置ContactListener(new Box2DWorld(this))以添加它 我的dedub是这样的 beginContact preSolve postSolve。preSolve postSolve beginContact preSolve END

  • 我正在尝试使用LibGDX来掌握游戏开发的窍门,到目前为止,我已经理解了它的一切,因为它是基本的Java,并且很好地使用了接口和超级类。 我正在努力将图形融入到LibGDX项目中,我正在使用Tiled创建地图,我了解它的工作原理以及如何渲染它们。 我也开始进入Box2D学习物理,我能够包装我的地图(平铺的…)用Box2D。 当我尝试从Spine导入项目时,出现了问题,我访问了以下链接:https:

  • 问题内容: 我刚刚开始使用libgdx创建游戏。它是使用scene2d ui的自上而下的2d射击游戏。现在我想,我可以在某些程度上增加黑暗和光明,但是我不想使用box2d重写所有内容。我不需要逼真的阴影,只需某种环境光和围绕我角色的光圈即可,不受周围墙壁和其他障碍物的影响。所以我想知道libgdx中是否有任何照明系统?或者我可以不使用box2d物体/世界而使用box2dlights吗?谢谢 问题答

  • 问题内容: 我有一个使用FitViewport的尺寸为800x480的游戏世界,最初使用像素来渲染box2d物体+固定装置,因此所有物理效果看起来都是漂浮而缓慢的。通过查看文档,我发现box2d使用度量单位,因此我将box2d的位置和大小转换为32倍,因此最终得到了25x15米的box2d世界。 我遇到的问题是,现在box2d对象变得非常小。如何缩小它们,使它们在屏幕上显示常规尺寸? 问题答案:

  • 为什么这工作正常: 这会产生运行时错误 错误: 这没有任何意义。第一个代码工作正常,三角形画好了,但第二个代码不行。有人能解释一下我做错了什么吗...