1

現在の画面全体のビットマップを取得する方法を知りたいです。選択したピクセルの RGBA 値を確認したいと思います。正しく動作しない私のコード:

public class PixmapTest implements Screen
{
     //(...)

     private float getRedValue(int x, int y)
     {
          Pixmap pixmap = new Pixmap(Gdx.graphics.getWidth(), Gdx.graphics.getHeight(), Pixmap.Format.RGBA8888);
          Color color = new Color();
          Color.rgba8888ToColor(color, pixmap.getPixel(x,y));
          pixmap.dispose();
          return color.r;
     }

     @Override
     public void render()
     {
          Gdx.gl.glClearColor(1f, 0f, 0f, 1f);
          Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
          System.out.println(getRedValue(50, 50));
     }
}

getRedValueメソッドは1.0を返すはずですが、 0.0を返します。専門外の質問で申し訳ありません。私はLibgdxとゲーム開発も初めてです。

4

3 に答える 3

2

最も簡単な方法は、ScreenUtils パッケージを使用することです。

Image screenShot = new Image(ScreenUtils.getFrameBufferTexture());
于 2013-12-27T23:41:29.217 に答える
0

https://code.google.com/p/libgdx-users/wiki/スクリーンショット

これが物事の仕組みです

メインロジックはPNG.javaクラスのみにあるため、PNG.javaクラスも取得することを忘れないでください

また、LibGdx 0.9.8 を使用している場合、これらのクラスは暗黙的に gdx.jar に含まれています。

于 2013-06-27T10:41:16.070 に答える