L'Interface Graphique la plus puissante
Salut salut,
Aujourd'hui je viens à vous pour répondre à une question existentielle, pour les besoins de mon jeu j'ai besoin d'avoir un affichage rapide (si possible 60 frames par secondes) et malléable, c'est à dire que je puisse si je veux éditer des pixels ou rajouter des grandes images par dessus en temps réel sans que ça ne ralentisses trop.
Actuellement j'utilise ça (je vous passe les codes annexes qui ne concerne pas vraiment le rendus graphique) :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
new Thread() {
@Override
public synchronized void run() {
while(tant que je veux rafraichir) render();
}
}.start();
.....
public void render() {
BufferStrategy bufferStrategy = super.getBufferStrategy();
try {
if(bufferStrategy == null) {
super.createBufferStrategy(2);
return;
}
} catch(Exception e) { e.printStackTrace(); }
try {
bufferStrategy.getDrawGraphics();
} catch(Exception e) {
e.printStackTrace();
return;
}
if(bufferStrategy.contentsLost()) return;
Graphics graphics = bufferStrategy.getDrawGraphics();
Graphics2D graphics2D = (Graphics2D) graphics;
Je peint mon jeu en utilisant simplement l'objet Graphics2D comme s'il s'agissait d'un paint classique.
bufferStrategy.show();
} |
L’inconvénient principale est que je ne peux pas éditer mes pixels en temps réel, je suis obligé de récupérer l'image, la décomposer, éditer l'image et la repeindre par dessus.
Je pensais donc, en conservant ce système dessiner tout l'affichage dans un tableau d'Integers et après rentrer tout ça dans une image volatile que je peindrais avec l'objet Graphics que je sortirais du bufferStrategy.
Qu'en pensez vous ? Es ce une bonne solution ? Y en à t il de meilleurs ? Mon code actuel est il mauvais ? Optimisation ? Pourquoi ?
Lâchez vous :)
Je vous remercie tous pour vos futures réponses.