我试图创建一个GUI,显示控制器操纵杆在屏幕上的位置。我想到一个带有红点的灰色方框来表示操纵杆的位置。到目前为止,我已经能够获得操纵杆的价值并将其放入浮动变量中。 (我不完全理解为什么它必须是一个浮点变量,eclipse会给出错误"无法从float转换为int")
这是我现在的代码。
import org.lwjgl.LWJGLException;
import org.lwjgl.input.Controller;
import org.lwjgl.input.Controllers;
public class Start{
static Controller controller;
public static boolean Start;
public static void main(String[]args){
try {
Controllers.create();
} catch (LWJGLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Controllers.poll();
for(int i=0;i<Controllers.getControllerCount();i++){
controller=Controllers.getController(i);
System.out.println(controller.getName());
}
controller=Controllers.getController(16);
for (int i=0;i<controller.getAxisCount();i++){
System.out.println(i+": "+controller.getAxisName(i));
}
for (int i=0;i<controller.getButtonCount();i++){
System.out.println(i+ ": "+controller.getButtonName(i));
}
while(true){
controller.poll();
Start=controller.isButtonPressed(0);
float axis1= controller.getAxisValue(1);
System.out.println(axis1);
}
}
}
我可以使用GUI中的红点来移动该变量值吗?
这是控制器的图片,我正在使用标记为Eclipse中所显示内容的所有输入。我只跟踪左手棍的左右移动。当棒一直向左时,变量为-1,右边为1
答案 0 :(得分:0)
这是一个浮点,因为没有绝对值,因为没有“步骤”。
喜欢左/中左/中/中/右/右
您需要做一些计算。让我们说你的画布是一个201像素的正方形。
在这种情况下,您可以将1添加到该位置并乘以100
边缘情况:
左侧位置
-1 + 1 = 0 0 * 100 = 0
画布上的左侧像素
中心位置
0 + 1 = 1 1 * 100 = 100
中间像素
正确的位置
1 + 1 = 2 2 * 100 = 200
画布上的右像素。