Slick2D 鼠标点击在 Windows 10 中不起作用
Slick2D Mouse Click not working in Windows 10
我在 Intellij 的 Windows 10 环境中使用 Slick2D 创建了一个简单的鼠标侦听器示例。它没有报告正确的坐标或根本不工作:
状态class:
import org.lwjgl.input.Mouse;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.state.BasicGameState;
import org.newdawn.slick.state.StateBasedGame;
public class StateMain extends BasicGameState
{
@Override
public int getID() {return 0;}
@Override
public void init(GameContainer container, StateBasedGame game) throws SlickException {}
@Override
public void render(GameContainer container, StateBasedGame game, Graphics g) throws SlickException {}
@Override
public void update(GameContainer container, StateBasedGame game, int delta) throws SlickException
{
System.out.printf("Position: %d,%d\n", Mouse.getX(), Mouse.getY()); // Only reports position (-1,-1)
}
@Override
public void mouseClicked(int button, int x, int y, int clickCount)
{
System.out.printf("Clicked: %d,%d\n", x, y); // Doesn't report
}
@Override
public void mousePressed(int button, int x, int y)
{
System.out.printf("Pressed: %d,%d\n", x, y); // Only reports (-1,501)
}
}
我的 libs 文件夹中有以下文件:
jinput-dx8.dll
jinput-dx8_64.dll
jinput-raw.dll
jinput-raw_64.dll
lwjgl.dll
lwjgl64.dll
OpenAL32.dll
OpenAL64.dll
以下是我的 VM 参数:
-Djava.library.path=libs/-Dorg.lwjgl.opengl.Display.allowSoftwareOpenGL=true
当运行代码时,我总是得到以下错误:
2017 年 10 月 5 日11:26:30上午net.java.games.input.DefaultControllerEnvironmentgetControllers
警告:发现未知 Windows 版本:Windows 10
2017 年 10 月 5 日 11:26:30 上午 net.java.games.input.DefaultControllerEnvironment getControllers
信息:正在尝试使用默认 windows 插件。
2017 年 10 月 5 日 11:26:30 上午 net.java.games.input.DefaultControllerEnvironment getControllers
信息:正在加载:net.java.games.input.DirectAndRawInputEnvironmentPlugin
我怀疑它正在加载的输入环境插件导致了奇怪的鼠标位置错误?
它对我有用。你能试试 lwjgl 2.9.1 并将其放入你的 init 方法中吗:System.setProperty("org.lwjgl.input.Mouse.allowNegativeMouseCoords", "false");
我在 Intellij 的 Windows 10 环境中使用 Slick2D 创建了一个简单的鼠标侦听器示例。它没有报告正确的坐标或根本不工作:
状态class:
import org.lwjgl.input.Mouse;
import org.newdawn.slick.GameContainer;
import org.newdawn.slick.Graphics;
import org.newdawn.slick.SlickException;
import org.newdawn.slick.state.BasicGameState;
import org.newdawn.slick.state.StateBasedGame;
public class StateMain extends BasicGameState
{
@Override
public int getID() {return 0;}
@Override
public void init(GameContainer container, StateBasedGame game) throws SlickException {}
@Override
public void render(GameContainer container, StateBasedGame game, Graphics g) throws SlickException {}
@Override
public void update(GameContainer container, StateBasedGame game, int delta) throws SlickException
{
System.out.printf("Position: %d,%d\n", Mouse.getX(), Mouse.getY()); // Only reports position (-1,-1)
}
@Override
public void mouseClicked(int button, int x, int y, int clickCount)
{
System.out.printf("Clicked: %d,%d\n", x, y); // Doesn't report
}
@Override
public void mousePressed(int button, int x, int y)
{
System.out.printf("Pressed: %d,%d\n", x, y); // Only reports (-1,501)
}
}
我的 libs 文件夹中有以下文件:
jinput-dx8.dll jinput-dx8_64.dll jinput-raw.dll jinput-raw_64.dll lwjgl.dll lwjgl64.dll OpenAL32.dll OpenAL64.dll
以下是我的 VM 参数:
-Djava.library.path=libs/-Dorg.lwjgl.opengl.Display.allowSoftwareOpenGL=true
当运行代码时,我总是得到以下错误:
2017 年 10 月 5 日11:26:30上午net.java.games.input.DefaultControllerEnvironmentgetControllers 警告:发现未知 Windows 版本:Windows 10 2017 年 10 月 5 日 11:26:30 上午 net.java.games.input.DefaultControllerEnvironment getControllers 信息:正在尝试使用默认 windows 插件。 2017 年 10 月 5 日 11:26:30 上午 net.java.games.input.DefaultControllerEnvironment getControllers 信息:正在加载:net.java.games.input.DirectAndRawInputEnvironmentPlugin
我怀疑它正在加载的输入环境插件导致了奇怪的鼠标位置错误?
它对我有用。你能试试 lwjgl 2.9.1 并将其放入你的 init 方法中吗:System.setProperty("org.lwjgl.input.Mouse.allowNegativeMouseCoords", "false");