Salut.
Je suis en train de faire un jeu d'aventure 2D et je veux faire un combat de RPG à un moment du jeu.
Le combat est codé, le truc qui me manque c'est la transition pour passer de la phase d'exploration à la phase de combat.
J'aimerais bien que le décor devienne un amas de pixels durant quelques secondes comme ça peut être le cas dans FF4 ( https://youtu.be/QxodM4uWaC8?t=3m46s ) ou dans d'autres RPG.
Je pense que la technique est de réduire puis d'augmenter la résolution d'une image prise du décor mais je vois pas trop comment faire.
http://codebin.co.uk/blog/pixelated-rendering-in-libgdx/
J'ai trouvé ça pour m'aider mais je n'arrive pas à faire fonctionner le code.
Si j'ai bien compris mon décor doit être "affiché" entre le begin et le end du buffer pour qu'il l'enregistre, cependant je vois pas comment faire.
J'affiche juste des textures, je n'utilise pas de caméra comme dans l'exemple, je pense que c'est dû au fait qu'il travaille en 3D.
Mon code ne change pas trop de l'exemple mais le voici quand même :
Jeu.batch.end();
if(fbo != null) {
fbo.dispose();
}
fbo = new FrameBuffer(Format.RGBA8888, 1000 / 8, 1000 / 8, false);
fbo.getColorBufferTexture().setFilter(TextureFilter.Nearest, TextureFilter.Nearest);
fbo.begin();
// Clear the viewport
Gdx.gl.glViewport(0, 0, fbo.getWidth(), fbo.getHeight());
Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT);
//Affichage du décor ?
fbo.end();
Jeu.batch.begin();
Jeu.batch.draw(fbo.getColorBufferTexture(), 0, 0, 1000, 1000, 0, 0, 1, 1);