等待Java for Snake Game的时间限制或用户输入

时间:2018-06-15 17:32:19

标签: java

我正在尝试用Java重建经典的Snake游戏,但似乎无法让用户输入正确。我希望系统等待一段时间,或者直到用户点击WASD键(以先到者为准)然后继续使用代码。我在这里看到另一个答案,使用BufferedReader和bf.ready()作为可能的解决方案,但由于某些原因不起作用。

这是我目前正在使用的代码。目前它始终将输入打印为测试,这意味着它认为用户从未输入任何内容。有关如何解决它的任何想法?

        double x = .75; // wait x seconds at most
        InputStreamReader r = new InputStreamReader(System.in);
        BufferedReader in = new BufferedReader(r);
        long startTime = System.currentTimeMillis();
        while ((System.currentTimeMillis() - startTime) < x * 1000
                && !in.ready()) {
        }
        Direction d = Direction.up;
        String input = "test";
        if (in.ready()) {
            input = in.readLine().toLowerCase();
            if (input.equals("a")) {
                d = Direction.left;
            } else if (input.equals("s")) {
                d = Direction.down;
            } else if (input.equals("d")) {
                d = Direction.right;
            }
        } else {
            d = snake.getDirection();
        }
        System.out.println(input);
        in.close();
        r.close();
        return d;

0 个答案:

没有答案