【问题标题】:Libgdx Click for x, y coordinatesLibgdx 单击获取 x、y 坐标
【发布时间】:2015-01-20 13:14:26
【问题描述】:

我有一个移动的正方形,它在我的窗口中移动,这很好用。但是当我尝试使用从 libgdx 中单击的公共 void 时,我无法让它工作。这就是我的 void 的样子:

public void clicked(InputEvent event,float x,float y){
    rect.y = y;
    rect.x = x;
}

在此之上,我还添加了盒子中的运动,这工作正常,所以它不是 rect.y 和 rect.x。为什么单击时 rect.y 和 rect.x 没有从我的 void 变为 float x 和 float y?

Libgdx 无效:

http://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/utils/ClickListener.html#clicked-com.badlogic.gdx.scenes.scene2d.InputEvent-float-float-

为什么这不起作用?

感谢阅读/帮助!

【问题讨论】:

    标签: java android libgdx


    【解决方案1】:

    把它放在你游戏的render 方法中:

    if(Gdx.input.isButtonPressed(Input.Buttons.LEFT)) {
        rect.x = Gdx.input.getX();
        rect.y = Gdx.input.getY();
    }
    

    rect 必须在您的游戏类中定义。

    【讨论】:

    • 你能解释一下这个解决方案吗?如果我将此代码放在我的 gamerederer 类中,则会出现错误,因为 rect 是私有的。
    • 当前鼠标位置始终存储在Gdx.input中。
    • 好吧,当我尝试这个时,正方形最终会从屏幕上消失? if(Gdx.input.isButtonPressed(Input.Buttons.LEFT)) { myWorld.getRect().x = Gdx.input.getX(); myWorld.getRect().y = Gdx.input.getY(); }
    • 至于这个条件的放置,应该总是在渲染循环中调用,以便持续测试。如果您在 GameRenderer 类中定义了一个 render 方法和一个 rect 对象,您可以在游戏的类中定义一个新的 GameRenderer 并从该对象间接绘制。
    • xy 是左下角坐标,你知道吗?
    猜你喜欢
    • 1970-01-01
    • 2014-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-23
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多