Eclipse,Java。使用操纵杆移动GUI元素?

时间:2016-11-23 21:40:28

标签: java eclipse user-interface

我试图创建一个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

Picture of the controller I'm using

1 个答案:

答案 0 :(得分:0)

这是一个浮点,因为没有绝对值,因为没有“步骤”。

喜欢左/中左/中/中/右/右

您需要做一些计算。让我们说你的画布是一个201像素的正方形。

在这种情况下,您可以将1添加到该位置并乘以100

边缘情况:

左侧位置

-1 + 1 = 0 0 * 100 = 0

画布上的左侧像素

中心位置

0 + 1 = 1 1 * 100 = 100

中间像素

正确的位置

1 + 1 = 2 2 * 100 = 200

画布上的右像素。