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

如何在libgdx中使身体直线运动

孔硕
2023-03-14

我刚开始使用libgdx,在直线上移动身体时遇到了问题,我想在着地时向右转一个角度。

 //BALL  creating ball
    // body defination
    BodyDef  bodyDef = new BodyDef();
    bodyDef.type = BodyDef.BodyType.DynamicBody;   
    bodyDef.position.set(8.50f, 8.50f);


    //ball shape
    CircleShape ballshape = new CircleShape();
    ballshape.setRadius(.75f);


    // ball fixture defination
    FixtureDef fixtureDef = new FixtureDef();
    fixtureDef.shape = ballshape ;
    fixtureDef.density = 2.5f;
    fixtureDef.friction = 0.25f;
    fixtureDef.restitution = 0.25f;

     ball = world.createBody(bodyDef);
     ball.createFixture(fixtureDef);

    ballshape.dispose(); 

我在两天的时间里试图弄明白这一点,但在任何地方都找不到任何示例或教程。在每个教程中,人们都使用键盘键来移动身体

提前谢谢。

编辑:在昨晚尝试了更多之后,我知道touch方法正在touch上被调用。

 Gdx.input.setInputProcessor(new InputController() {

        @Override
        public boolean touchDown(int screenX, int screenY, int pointer, int button) {
            ((Game)Gdx.app.getApplicationListener()).setScreen(new MainMenu());

         //  ball.applyLinearImpulse(new Vector2(0,500), ball.getPosition() , true);
            return true;
        }


    });

因为它在触摸屏上将屏幕设置为主菜单,但它不适用于任何强制执行速度


共有1个答案

丌官运珧
2023-03-14

下面是一些简单的代码,您可以从这些代码开始在Libgdx/Box2D中移动实体。当然,有很多方法可以做到这一点,下面是一个简单的代码:

算法:

如果你触摸屏幕的前半部分==

如果你触摸屏幕的另一半==

if(Gdx.input.isTouched()) { // Detect is finger on the screen
    int x = Gdx.input.getX(); // get x touch coordination
    int y = Gdx.input.getY(); // get y touch coordination
    
    if(x < Gdx.graphics.getWidth()/2) { // First half Screen ==> move backward
        body.setLinearVelocity(-SpeedMove,0);
    }else if(x >= Gdx.graphics.getHeight() /2) { // Second half Screen ==> move forward
        body.setLinearVelocity(SpeedMove,0);
    }
}else { // no finger is on the screen
    body.setLinearVelocity(0,0); // ==> no moving body
}

任何麻烦留下评论

祝你好运

 类似资料:
  • 我制作了一个身体,我想在点击按钮时移动它,我已经能够使用但它不准确。假设我想以40的线速度移动我的身体7米,我该怎么做? 我可以用身体。setTransform()但我需要身体真正移动,而不是传送。提前谢谢

  • 我是的新手。我正在努力用触碰让身体移动,一旦触碰被释放,它就必须停止移动!!使用KeyUp和KeyDown可以很好地工作,但我不知道如何使用touch实现。 这是我的密码。我是作为一门独立的课写的。下面是课程: 这是我的密码。我试着触地得分。我试图通过设定一定的速度来移动身体,但没有发生预期的结果。我不能用触摸来移动这个物体(多边形)。请帮忙。提前谢谢

  • 还有一个美好的夜晚。 我有以下问题: 一个Box2d动态体,带有一个夹具,所有顶点从体的原点以位置x/y放置。http://i.stack.imgur.com/MXQRr.png 但是旋转是在身体原点0/0上,而不是在质量中心。 所以我尝试了以下方法: 1:将身体的原点设置在身体的中间(顶点正负) 问题:旋转工作,精灵定位几乎是不可能的 2:设置海量数据中心=原点Body.x宽度/ 2,原点Bod

  • 问题内容: 如何使用HTML制作垂直线? 问题答案: 在您希望该行显示在旁边的标记周围放置一个标记,并使用CSS对其进行样式设置:

  • 问题内容: 我想创建一个消息框,当您接受时该消息框会褪色,但是我不知道如何更改字体的字母, 这是我的字体处理方式: 谁能帮我 ?:)我很抱歉我的英语,这不是我的母语。 问题答案: 这将更改所有后续绘制的字体的字母。因此,一旦绘制该消息,您可能希望再次将其设置为完全不透明。