2

如何使用 BlueStacks 在 Java 中映射键盘?

我试试这个,但是当我按下任何键时什么都不做。我需要使用箭头键和空格键,感谢您的帮助。

    public static class KeyEvent {
            public static final int KEY_DOWN = 0;
            public static final int KEY_UP = 1;

            public int type;
            public int keyCode;
            public char keyChar;

            public String toString() {
                StringBuilder builder = new StringBuilder();
                if (type == KEY_DOWN)
                    builder.append("tecla pulsada, ");
                else
                    builder.append("tecla levantada, ");
                builder.append(keyCode);
                builder.append(",");
                builder.append(keyChar);
                return builder.toString();
            }
public List<KeyEvent> getKeyEvents();
}

然后调用类:

public void update(float deltaTime) {
        List<TouchEvent> touchEvents = juego.getInput().getTouchEvents();
        List<KeyEvent> keyEvents = juego.getInput().getKeyEvents();

        juego.getInput().getKeyEvents();


        if (estado == EstadoJuego.Preparado)
            updateReady(touchEvents);
        if (estado == EstadoJuego.Ejecutandose) {
            updateRunning(touchEvents, deltaTime,keyEvents);
        }
        if (estado == EstadoJuego.Pausado)
            updatePaused(touchEvents);
        if (estado == EstadoJuego.FinJuego)
            updateGameOver(touchEvents);

    }

private void updateRunning(List<TouchEvent> touchEvents, float deltaTime,List<KeyEvent> keyEvents) {
        //Reinicio valores de menus pausa, etc...
        msgx=360;
        listo=false;
        finmensaje=false;

        for(int i=0;i<keyEvents.size();i++){
            if(keyEvents.get(i).keyCode>0){
                Assets.sdisparo.play(1);
            }
        }
        if(juego.getInput().isKeyPressed(38)){
            Log.e("Prueba", "Se ha tecleado arriba");
            Assets.sdisparo.play(1);
        }
}

对不起我的英语^^

4

0 回答 0