java - Libgdx 加速度计不工作?

标签 java android libgdx accelerometer gyroscope

出于某种原因,当我倾斜屏幕时,积木没有移动,我不知道出了什么问题。澄清一下,我将 cfg.accelerometer 设置为 true,但将 cfg.compass 设置为 false。这是源代码-

public void update() 
{

    x += velX;
    y += velY;

    //movement

    //left
    if (Gdx.input.isKeyPressed(Keys.LEFT))
    {
        velX = -speed;
    }

    //right
    if (Gdx.input.isKeyPressed(Keys.RIGHT))
    {
        velX = speed;
    }

    //up
    if (Gdx.input.isKeyPressed(Keys.UP))
    {
        velY = -speed;
    }

    //down
    if (Gdx.input.isKeyPressed(Keys.DOWN))
    {
        velY = speed;
    }

    if (Gdx.input.isPeripheralAvailable(Input.Peripheral.Accelerometer))
    {
        velX = Gdx.input.getAccelerometerX();
        velY = Gdx.input.getAccelerometerY();
    }

    //stop
    if (!Gdx.input.isKeyPressed(Keys.LEFT) && !Gdx.input.isKeyPressed(Keys.RIGHT))
    {
        velX = 0;
    }

    if (!Gdx.input.isKeyPressed(Keys.UP) && !Gdx.input.isKeyPressed(Keys.DOWN))
    {
        velY = 0;
    }

    //collision with edges of screen
    if (x <= 0)
    {
        x = 0;
    }

    if (x >= 1920 - width)
    {
        x = 1920 - width;
    }

    if (y <= 0)
    {
        y = 0;
    }

    if (y >= 1080 - height)
    {
        y = 1080 - height;
    }

    long recoveryElapsed = (System.nanoTime() - recoveryTimer)/1000000;
    if (recoveryElapsed > 2000)
    {
        recovering = false;
        recoveryTimer = 0;
    }

    System.out.println(lives+ " lives, recovering, "+recovering);

}

帮助将不胜感激,谢谢。我没有找到显示工作示例的教程,所以我真的不知道我在做什么是否正确,但我看不出有什么问题。

最佳答案

您正在设置加速度值,然后如果没有按下键,您将再次将它们设置为 0。这样做:

//stop
if (!Gdx.input.isKeyPressed(Keys.LEFT) && !Gdx.input.isKeyPressed(Keys.RIGHT))
{
    velX = 0;
}

if (!Gdx.input.isKeyPressed(Keys.UP) && !Gdx.input.isKeyPressed(Keys.DOWN))
{
    velY = 0;
}

if (Gdx.input.isPeripheralAvailable(Input.Peripheral.Accelerometer))
{
    velX = Gdx.input.getAccelerometerX();
    velY = Gdx.input.getAccelerometerY();
}

关于java - Libgdx 加速度计不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21819536/

相关文章:

java - JPA 引用重构

java - Intellij : Adding 'Interface' to my context menu in the Project Pane

java - 执行线程仍然显示在CPU中

android - 无法使用 NdefFormatable 格式化 NFC 卡

java - 如何将对象从节点移动到节点? Libgdx Box2d A*寻路

java - LibGDX - 使用 InputProcessor 进行多点触控处理

Java代码手动从集群触发kubernetes cronjob

java - 我们应该提防的任何陷阱 Integer.MIN_VALUE == -Integer.MIN_VALUE == Math.abs(Integer.MIN_VALUE)

java - 如何将正确的数据传递给 Android OpenGL-ES 2.0 着色器程序

java - libgdx ActorGestureListener.pan() 参数不以平滑的方式移动 Actor