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

Libgdx游戏每秒加速和减速

许展鹏
2023-03-14
   public void update(float dt){
        world.step(1 / 60f, 2, 2);

        handleInput(dt);

        camX();

        player.moveMario();

        hud.update();

        gameCam.update();
        renderer.setView(gameCam);
    }

    @Override
    public void render(float delta) {
        update(delta);
        Gdx.gl.glClearColor(0, 0, 0, 1);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

        renderer.render();

        game.batch.setProjectionMatrix(hud.stage.getCamera().combined);
        hud.stage.draw();

        game.batch.setProjectionMatrix(gameCam.combined);
        game.batch.begin();
        game.batch.draw(ball, player.b2Body.getPosition().x - MarioBros.RADIUS_CHARACTER / MarioBros.PPM, player.b2Body.getPosition().y - MarioBros.RADIUS_CHARACTER / MarioBros.PPM, 70 / MarioBros.PPM, 70 / MarioBros.PPM);
        mapCreator.createSpikeBalls(map, animation, game.batch);
        endOfGame();
        game.batch.end();

        b2dr.render(world, gameCam.combined);
    }

    public void camX(){
            gameCam.position.x = gamePort.getWorldWidth() / 2;
            if(player.b2Body.getPosition().x  >= gamePort.getWorldWidth() / 2){
                gameCam.position.x  = player.b2Body.getPosition().x;
            }
    }
 public void moveMario(){
        if (b2Body.getLinearVelocity().x < 4){
            b2Body.applyLinearImpulse(new Vector2(2.7f, 0), b2Body.getWorldCenter(), true);
        }
    }

共有1个答案

井翰
2023-03-14

你没有写任何关于你的世界和身体设置的东西,但我猜下面会发生:

  • 你给马里奥施加一个冲动=>他的速度加快
  • 在以下几个世界步骤中,身体摩擦使马里奥减速
  • 一旦b2body.getLinearVelocity().x<4为true,就再次对Mario施加脉冲
  • 摩擦又让他慢了下来
  • ...

除此之外,你绝对应该把deltaTime传递给世界的步法

 类似资料:
  • 我需要提高游戏屏幕加载时间的Android游戏,使用LibGdx游戏引擎。我已经实现了一些类(ImageProvider和SoundManager),它们负责预加载游戏的资产和音频部分。所以,问题是我如何加载这些游戏资源而不影响游戏屏幕之间的加载时间? 我在网上搜索了这个问题,在Stack上发现了一些类似的问题。 如何减少libgdx中所有资产的加载时间 LibGDX中的AssetManager

  • 我正在尝试用libgdx开发一个简单的蛇游戏。我的问题是,每次我想要繁殖一些苹果(纹理,20px宽X 20px高),它总是与蛇的身体重叠。我试图避免这种情况,但它在比赛中不断发生。 snake由多个部分组成-每个部分都是一个20px宽X 20px高的纹理(屏幕宽度是480px宽X 800px高) 以下是我迄今为止所做的尝试: 代码很容易解释。每时每刻,屏幕上都有3个不同的苹果。这段代码试图抽奖x-

  • 问题内容: 可以说我想做一个循环或每秒打印出来的内容,例如“ Mario”。我怎样才能做到这一点?似乎找不到任何可以在任何地方教授此内容的优秀教程= P 问题答案: 您可以使用java.util.Timer。 任务是您要执行的方法,之后是直到第一次执行的时间,间隔是上述任务的两次执行之间的时间。

  • 我想在我的游戏中添加秒表。我计划修改此代码并添加到我的pygame中: 我是否应该在def init部分中添加一个计时器框,并为计时器代码创建一个新的def?我想让计时器不使用代码,因为我的游戏正在运行时钟。勾选(60),使其不会影响勾选 更新后,我的游戏代码如下:

  • 我正在开发一个Android游戏,使用Eclipse中的libGDX。我想加快我的场景(跑步机),每当一个球员得了10分。跑步机的初始速度等于0,每10分累加5。当角色掉出屏幕时,玩家就输掉了游戏。有人知道怎么做吗?

  • 我看的是Incapsula的速率限制,它基于每分钟限制请求等。 有没有一种基于每秒的速率限制方法?因此,如果ip超过每秒1个请求,那么就阻止它。 干杯