¿Cómo puedo probar si el mouse dibuja en los mosaicos activos?

Quiero dibujar algunos sprites en un map de mosaico donde los mosaicos están activos. Quiero dibujar con el mouse, entonces, ¿cómo podría comparar la position del mouse, la position de los sprites y la position de los tiles activos? Traté de comparar: sprite.getX , screenX y cell.getTile (). getProperties (). containsKey ("active") cell.getTile (). getProperties (). containsKey ("active") cell.getTile (). getProperties (). containsKey ("active") pero no puedo get la position de las fichas activas.

El tipo de camera libgdx OrthographicCamera tiene un método sin proyecto . Al suministrar este método con las coorderadas de pantalla del clic del mouse, obtendrá una position en el espacio mundial con la que podrá usar la detección de colisión en sus mosaicos.

El siguiente código muestra cómo puede get el coodinate del mouse y traducirlo a un punto de espacio mundial.

 Vector3 clickPos = new Vector3(); clickPos.set(Gdx.input.getX(), Gdx.input.getY(), 0); camera.unproject(clickPos); 

Al final de este fragment de código, puede esperar que los clickPos ahora se relacionen con una position en el espacio mundial.

Como se señala en la documentation de API, establecer el valor z del vector de input le dará una position a una distancia a lo largo del rayo que abarca desde el plano cercano al lejano. En el ejemplo, el valor z es 0, por lo tanto, la coorderada devuelta estará en el plano cercano de la camera. Sin embargo, suponiendo que esto es ortográfico, esto debería estar bien.

La obtención de la célula se puede hacer usando getCell ;

 TiledMapTileLayer.Cell cell = TiledMapTileLayer.getCell(clickPos.x, clickPos.y);