LibGDX получает пиксельный цвет от спрайта или текстуры

Я искал его в сети, но я не смог найти решение. У меня есть спрайт или текстура, и когда я прикасаюсь к нему, я хочу получить пиксельный цвет от сенсорных координат.

так что я:

if (Gdx.input.isTouched()) { Rectangle spriteBounds = sprite.getBoundingRectangle(); if (sprite.contains(Gdx.input.getX(), Gdx.input.getY())) { //and here something like //Color color = sprite.getPixelColor(Gdx.input.getX(), Gdx.input.getY()); } } 

Является ли это возможным? Спасибо 🙂

Что-то вроде следующего может работать, но не проверено. Вы можете получить цвет через Pixmap Texture спрайта. Вы должны убедиться, что вы правильно преобразовываете координаты ввода (экрана) в локальные координаты текстуры.

 if (Gdx.input.isTouched()) { Rectangle spriteBounds = sprite.getBoundingRectangle(); if (spriteBounds.contains(Gdx.input.getX(), Gdx.input.getY())) { Texture texture = sprite.getTexture(); int spriteLocalX = (int) (Gdx.input.getX() - sprite.getX()); // we need to "invert" Y, because the screen coordinate origin is top-left int spriteLocalY = (int) ((Gdx.graphics.getHeight() - Gdx.input.getY()) - sprite.getY()); int textureLocalX = sprite.getRegionX() + spriteLocalX; int textureLocalY = sprite.getRegionY() + spriteLocalY; if (!texture.getTextureData().isPrepared()) { texture.getTextureData().prepare(); } Pixmap pixmap = texture.getTextureData().consumePixmap(); return new Color(pixmap.getPixel(textureLocalX, textureLocalY)); } }