精灵向上移动,我希望它在被触摸时被删除。
我可以使用1
坐标来检测精灵是否被触摸,但是X
坐标没有触及精灵,当我使用Y
时,Gdx.input.getY()
坐标得到Y
更高,基本上它被逆转了。
这是X坐标检测的代码:
if ( touched == true && touchX > sprite.getX() &&
touchX < sprite.getX() + sprite.getWidth() ) {
enemyIterator.remove();
Pools.free(sprite);
}
答案 0 :(得分:2)
要正确使用,您应使用Viewport或相机的 unproject 方法将屏幕坐标转换为世界坐标。然后在条件中使用转换(未投影)的屏幕坐标。
Vector2 unprojectedTouch = viewport.unproject(new Vector2(touchX, touchY));
//Vector3 unprojectedTouch = camera.unproject(new Vector3(touchX, touchY, 1));
if(touched==true && unprojectedTouch.x > sprite.getX() && unprojectedTouch.x < sprite.getX()+sprite.getWidth()){
enemyIterator.remove();
Pools.free(sprite);
}
Viewport和Camera的非项目方法之间的唯一区别是Viewport的unproject方法通过使z坐标可选以使其更容易用于2D来调用Camera的unproject方法用法。
答案 1 :(得分:0)
Y倒置了...... 您的Y代码应该如下所示(注意te page.getHeight(), page 是屏幕,画布,文档 ...根据需要调用它。)
** UI元素和触摸点**
的Y原点不同1-4