【发布时间】:2016-06-11 11:01:49
【问题描述】:
我有一个 libGDX 代码,但我不明白为什么它不起作用。 我的想法如下:我创建一个带有纹理的精灵,如果我点击这个精灵,那么应该会发生一些事情。到目前为止,一切都很好。
我在位置上使用以下代码创建精灵:
X = 0.1f;
Y = 0.5f;
这很好用……
Sprite spr = new Sprite(texture);
// Define sprite size to be 1m x 1m in game world
spr.setSize(1, 1);
// Set origin to sprite's center
spr.setOrigin(spr.getWidth() / 2.0f, spr.getHeight() / 2.0f);
// Calculate random position for sprite
float randomX = 0.1f;
float randomY = 0.5f;
spr.setPosition(randomX, randomY);
// Put new sprite into array
testSprites[i] = spr;
现在我确实想在单击时获取鼠标的 X 和 Y 位置。 但是当我使用 Systemout 进行尝试时,我得到以下坐标: X 输入:748 X 精灵位置:0.1
Sprite 位置是正确的,但 X 输入 (Gdx.input.getX) 也应该在 0.1 左右,但相差甚远。有什么我不考虑的吗?
if (Gdx.input.isButtonPressed(Buttons.LEFT))
System.out.println("X Input: "+ Gdx.input.getX());
System.out.println("X Sprite Position: "+testSprites[1].getX());
【问题讨论】:
-
你应该使用 InputProcessor 而不是 isButtonPressed。显示渲染方法。您是否将屏幕坐标投影到世界坐标?
标签: java libgdx textures sprite mouseclick-event