ゲームの途中で、現在RGB値のマトリックス(または実際にはいくつかのマトリックス)として画面に表示されているピクセルにアクセスしたい。これにアクセスする簡単なコマンドがありますか?LibGDX - 現在レンダリングされたスクリーンをRGB値のマトリックスとして取得する
getPixel(int x, int y)
またはちょうどですべてのピクセルを反復処理:
ゲームの途中で、現在RGB値のマトリックス(または実際にはいくつかのマトリックス)として画面に表示されているピクセルにアクセスしたい。これにアクセスする簡単なコマンドがありますか?LibGDX - 現在レンダリングされたスクリーンをRGB値のマトリックスとして取得する
getPixel(int x, int y)
またはちょうどですべてのピクセルを反復処理:
あなたは次にあなたがPixmapメソッドを使用して所望の画素を得ることができます[公式LibGDXウィキ[(https://github.com/libgdx/libgdx/wiki/Taking-a-Screenshot)
byte[] pixels = ScreenUtils.getFrameBufferPixels(0, 0, Gdx.graphics.getBackBufferWidth(), Gdx.graphics.getBackBufferHeight(), true);
Pixmap pixmap = new Pixmap(Gdx.graphics.getBackBufferWidth(), Gdx.graphics.getBackBufferHeight(), Pixmap.Format.RGBA8888);
BufferUtils.copy(pixels, 0, pixmap.getPixels(), pixels.length);
//Your logic here
pixmap.dispose();
からコードを使用することができますループを次のように使用する
for(int w = 0; w < pixmap.getWidth(); w++)
for(int h = 0; h < pixmap.getHeight(); h++)
getPixel(w, h);
pixmapを削除する必要があることに注意してください。あなたが処分する必要があるオブジェクトのリストhere
素晴らしいです、ありがとう! – mkreisel
クラス[ScreenUtils](https://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/utils/ScreenUtils.html)には次のようなものがあります。現在の 'FrameBuffer'を' byte [] '、' PixMap'あるいは 'TextureRegion'として返すいくつかのメソッドです。私はあなたが探しているものだと思います。 – Springrbua