2016-03-23 5 views
0

ゲームの途中で、現在RGB値のマトリックス(または実際にはいくつかのマトリックス)として画面に表示されているピクセルにアクセスしたい。これにアクセスする簡単なコマンドがありますか?LibGDX - 現在レンダリングされたスクリーンをRGB値のマトリックスとして取得する

getPixel(int x, int y) 

またはちょうどですべてのピクセルを反復処理:

+0

クラス[ScreenUtils](https://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/utils/ScreenUtils.html)には次のようなものがあります。現在の 'FrameBuffer'を' byte [] '、' PixMap'あるいは 'TextureRegion'として返すいくつかのメソッドです。私はあなたが探しているものだと思います。 – Springrbua

答えて

3

あなたは次にあなたが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

+0

素晴らしいです、ありがとう! – mkreisel

関連する問題