java - 获取键盘用户输入

标签 java slick2d

我正在尝试使用 slick2D 库制作一个简单的游戏,用户必须在某种文本框中输入他们的名字。我在谷歌上搜索了有关如何获取用户输入的教程,我得到的唯一一件事是可以检查是否按下了指定的键。我还尝试使用内置的 TextField 但它似乎在 BasicGameState 类中不起作用。除此之外,我找不到任何类型的教程来获取用户输入。检查每个键似乎效率很低。理想情况下,我想检查用户是否按下某个键,无论该键是什么,我都想将其添加到稍后可能使用的字符串变量中。我为内置 TextField 尝试的代码如下 封装场景;

import static javagame.Main.*;

import org.newdawn.slick.*;
import org.newdawn.slick.gui.TextField;
import org.newdawn.slick.state.*;

public class Scene01 extends BasicGameState{

    public static void drawBG(Graphics g){
        g.setColor(new Color(0, 0, 0, 255));
        g.fillRect(0, 0, displayWidth, displayHeight);
        g.setColor(new Color(255, 255, 255, 2));
        g.fillRect(0, 0, displayWidth, displayHeight);
        int circleXY, circleWH;
        for(int i = 0; i < 100; i++){
            circleWH = 500 - (i * 5);
            circleXY = (int) (-50 + (i * 2.5));
            g.setColor(new Color(255, 255, 255, 1));
            g.fillOval(circleXY , circleXY, circleWH, circleWH);
        }
    }

    public  String inputText;
    private boolean active = false;
    private Color activeColor = new Color(0, 255, 255);
    private Color inactiveColor = new Color(0, 128, 128);
    private Color colorRn = inactiveColor;
    private TextField textField;

    String str;

    public Scene01(int state){}

    public void init(GameContainer gc, StateBasedGame sbg)throws SlickException {
        textField = new TextField(gc, gc.getDefaultFont(), 240, 240, 100, 100);
        textField.setBackgroundColor(colorRn);
        textField.setBorderColor(Color.black);
    }

    public void update(GameContainer gc, StateBasedGame sbg, int delta)throws SlickException {

    }

    public void render(GameContainer gc, StateBasedGame sbg, Graphics g)throws SlickException {
        g.setColor(Color.white);
        g.fillRect(0, 0, displayWidth, displayHeight);
        //drawBG(g);
        textField.render(gc, g);
    }

    public int getID() {
        return 2;
    }

}

最佳答案

这里有一种打开小面板的方法,其中显示您偏好的消息和用户可以在其中输入答案的框(我也在我的手机自动提款机上,所以请原谅任何错误):

首先将其放入导入中(在每个公共(public)类之前):

import javax.swing.JOptionPane;

然后在你的程序中输入:

String X;
Int Y;

X=JOptionPane.showInputDialog("Enter your name");
Y=Integer.parseInt(s);

~希望这有帮助!

关于java - 获取键盘用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49601672/

相关文章:

java - Gitflow 与 Maven 的工作流程 - 何时构建什么?

java - 使用 drawImage 时出现 NullPointerException(使用 Slick2d)

java - 在java中构建树结构的json

java - Maven + Tomcat + Eclipse Java 热插拔

java - 使用正则表达式从子字符串替换java中的一行

Java slick statebased game - 状态返回空点错误

java - 异常在线程 "main"java.lang.UnsatisfiedLinkError : no lwjgl in java. library.path

java - 为什么我在牙套上出现错误?

java - 当我 setBackground(); 时,Slick2d java 游戏崩溃;

java - Java 的 SQL 解析器库 - 检索 SQL 语句中存在的表名列表