gpt4 book ai didi

java - 使用 Google Lanterna 终端移动光标时出现问题

转载 作者:行者123 更新时间:2023-12-01 12:00:26 25 4
gpt4 key购买 nike

我正在使用 googlecode Lanterna 库。它的方法之一是“moveCursor(int x, int y)”。我有一个终端字段,我想在其中移动一个字符。但我有两个问题:

光标未按应有的方向移动。当我在按右箭头后按左箭头时,它会向下移动一些步骤,而不是朝正确的方向移动。所有箭头都会发生这种情况。第二个问题。谁能帮我移动终端字段中的字符?我应该构建任何类或任何方法吗?或者我应该修改这个?谢谢!

public void movePlayer()
{
int xLocation = s.getXLocation();
int yLocation = s.getYLocation();
while (true)
{
Key key = t.readInput();
if (key!=null)
{
if (key.getKind() == Key.Kind.ArrowLeft)
{
t.moveCursor(xLocation-1, yLocation);
xLocation--;
}
else if (key.getKind() == Key.Kind.ArrowRight)
{
t.moveCursor(xLocation+1, yLocation);
xLocation++;
}
else if (key.getKind() == Key.Kind.ArrowUp)
{
t.moveCursor(xLocation, yLocation+1);
yLocation--;
}
else if (key.getKind() == Key.Kind.ArrowDown)
{
t.moveCursor(xLocation, yLocation-1);
yLocation++;
}
}
}
}

最佳答案

如果你这样做,光标就会正确移动,不会出现任何复杂情况。

public static void movePlayer() {
int xLocation = s.getXLocation();
int yLocation = s.getYLocation();
while (true) {
Key key = t.readInput();
if (key != null) {
if (key.getKind() == Key.Kind.ArrowLeft) {
t.moveCursor(xLocation - 1, yLocation);
xLocation--;
} else if (key.getKind() == Key.Kind.ArrowRight) {
t.moveCursor(xLocation + 1, yLocation);
xLocation++;
} else if (key.getKind() == Key.Kind.ArrowUp) {
t.moveCursor(xLocation, yLocation - 1);
yLocation--;
} else if (key.getKind() == Key.Kind.ArrowDown) {
t.moveCursor(xLocation, yLocation + 1);
yLocation++;
}
}
}
}

希望能帮助您解决问题。

关于你的第二个问题我目前无法给出答案。

关于java - 使用 Google Lanterna 终端移动光标时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28016572/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com