java - 程序运行时继续读取输入

标签 java pacman

我正在尝试为即将到来的测试编写一个简单的吃 bean 人/贪吃蛇游戏。由于我们不会使用 GUI(还没有教过,我不明白,而且我不知道他们是否允许),所以游戏将在控制台/命令行上运行。当程序读取我的输入时,如何让我的吃 bean 人或蛇继续移动? 例如,如果我按向右箭头或“D”,蛇或吃 bean 人将向右移动,并且它将继续向右运行,直到我按另一个按钮(在我的程序中,这意味着我的数组中的 X 坐标将继续增加 1) )我不知道是否可能,感谢任何帮助

static void mapInit(){ // this is the map. I use 10x10 array. I made it so any blank space that pacman or snake can move have 0 value
        for (int i = 0; i < map.length; i++) {
            for (int j = 0; j < map.length; j++) {
                if(i == 0 || i == 9)
                map[i][j] = rand.nextInt(9)+1;
                else if(i != 0 && i != 9){
                 if( j == 9 || j == 0) map[i][j] = rand.nextInt(9)+1;
                }//else if
                } //second for
            } // top for

    } //mapInit
    static void world(){ // this prints out the map and the snake
        for (int i = 0; i < map.length; i++) {
            for (int j = 0; j < map.length; j++) {
                if(i == y && j == x) {  // X and Y is the coordinate of my snake or pacman
                    System.out.print("C");
                    System.out.print(" ");
                }
                    else if (map[i][j] == 0) {
                        System.out.print(" ");
                        System.out.print(" ");


                    }
                        else {
                        System.out.print(map[i][j]);
                        System.out.print(" "); 
                        }
            }
            System.out.println();
        }


    } // world

最佳答案

看起来监听器就是您可能正在寻找的东西。您需要使您决定处理输入的类实现 KeyListener,然后重写以下一个或多个方法以获得您想要的行为。最重要的是,您需要确保您的程序不会在第一次运行时退出,因此需要一个游戏循环。 Java docs 中有一个关于如何编写 KeyListener 的更完整的示例。 .

如果您希望 pacman 继续朝某个方向前进,您可以设置一个 currentDirection 变量,使其在按下按键时设置的所需方向的每一帧中移动。

public void keyTyped(KeyEvent e) {
    displayInfo(e, "KEY TYPED: ");
}

/** Handle the key-pressed event from the text field. */
public void keyPressed(KeyEvent e) {
    displayInfo(e, "KEY PRESSED: ");
}

/** Handle the key-released event from the text field. */
public void keyReleased(KeyEvent e) {
    displayInfo(e, "KEY RELEASED: ");
}

关于java - 程序运行时继续读取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26095954/

相关文章:

java - 具有多个导出点的代码段中的循环复杂度

Java throws 关键字

java - Pacman java 运动问题

python - pygame 在矩形消失后不会重新绘制矩形

python - 吃 bean 人 - 一旦按下并释放一个键,让吃 bean 人朝一个方向移动

java - 吃 bean 游戏 KeyListener

java - Glassfish部署错误 "Archive type of MyProject.jar was not recognized"

java - 启动另一个不是库的项目的 Activity | Java/安卓

java - Hibernate validator 不适用于 Spring

java - 移动吃 bean 人