繁体   English   中英

鼠标单击时鼠标指针下方的精灵坐标偏移补偿问题

[英]Mouse coordinates offset compensation issue for sprite under pointer on left-clicking

我试图让一个精灵移动到我的鼠标坐标,虽然运气有限,但我很幸运。 我有以下代码可以使精灵移动,但相对于它,它仍然没有移动到我单击的位置。 似乎我在网上找到的代码可以抵消鼠标的Y位置(减去),但不能抵消X? 我想知道为什么? 谢谢

if(Gdx.input.isButtonPressed(Input.Buttons.LEFT)){
        sprite.setPosition(Gdx.input.getX() - sprite.getWidth()/2,
                Gdx.graphics.getHeight() - Gdx.input.getY() - sprite.getHeight()/2);
};

鼠标输入的坐标相对于屏幕的左上角。 因此,您必须根据摄像头的位置及其原点来计算鼠标在世界上的位置。

您可以手动执行此操作,或者我在此站点上找到了:

    Vector3 worldCoordinates = new Vector3(x, y, 0);
    camera.unproject(worldCoordinates);

在代码Gdx.graphics.getHeight() - Gdx.input.getY() - sprite.getHeight()/2中使用y位置的原因是,Worlds Y在增长,而鼠标Y在增长下。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM