Bonjour à tous,
Je suis assez nouveau dans la programmation orientée graphique 2D, donc je viens vous demander conseil pour un choix technique que j'ai du mal à faire.
J'aimerais réaliser un affichage radar très simple. Dans ma fenêtre sur fond noir, je veux pouvoir afficher des éléments/symboles amenés à se déplacer au cours du temps. Ce sont des symboles assez simples; triangles, cercles, rectangles, ou assemblage de ces formes basiques.
La taille de cet affichage radar est fixe, mais j'aimerais pouvoir le paramétrer de sorte que peu importe la taille de la fenêtre à sa création, les symboles restent aux mêmes proportions (la même échelle) que la fenêtre.
Le chargement au préalable des ces symboles en mémoire était ma première idée. J'ai envisagé deux possibilités :
- Charger en mémoire sur une texture l'image de tous mes symboles dessinés à une échelle volontairement grande pour ensuite copier une portion de cette texture (correspondant à un symbole) directement dans ma fenêtre à une échelle réduite qui suit les proportions de ma fenêtre.
- Dessiner sur une texture (voire RenderTexture) tous les symboles de façon "vectorielle", en appliquant un ratio d'échelle sur les différentes tailles/distances que j'utilise pour former mon symbole (qui peut être composé de plusieurs rectangles pour former un "carré creux" par exemple), pour ensuite copier les éléments déjà formés à la bonne taille dans ma texture sur ma fenêtre.
La deuxième façon de faire est sinon tout simplement de dessiner mes éléments directement dans la fenêtre. Ce serait du coup la même méthode "vectorielle" que ci-dessus pour former les symboles, avec pour chaque symbole un objet hérité de la classe Shape ou Drawable (je ne sais pas trop lequel choisir), qui me permet d'implémenter la fonction draw.
En terme de charge, je ne pense pas qu'elle soit très grande, même pour un ordinateur aux specs modestes. Il y aurait au grand maximum une trentaine de symboles sur l'écran avec un rafraîchissement de l'image à 30 fps.
Avec tous ces éléments, auriez-vous une direction que vous pensez plus pertinente qu'une autre ?
J'espère avoir été un minimum compréhensible, et vous remercie d'avance pour votre réponse !