Bonjour,
Je réalise un jeu et comme il s'agit d'un jeu style jeu-de figurine, je voulais afficher le plateau de jeu en 3D dans un JPanel.
J'ai feuilleté la partie de mon bouquin de référence sur Java3D en me disant que finalement c'était super simple. Problème : Il semble qu'utiliser java3d dans un .jar oblige à quelques gymnastiques pour que l'application soit utilisable à la fois sous linux, mac et windows, si l'utilisateur n'a pas lui même installé chez lui java3D.
Du coup, comme en plus, je n'ai qu'une représentation 2D de mes figurines, je me suis dis que j'allais utiliser mon habituel paintComponent avec un algorithme traduisant en 2D, des coordonnées x,y,z en calculant une ligne d'horizon, des lignes de fuites etc...
En utilisant une sorte d'HashMap <Coordon3D,Image>, je peux dessiner dans mon composant l'ensemble des images, du fond vers le premier plan. Je peux même ajouter toute une série de méthodes pour ajouter, supprimer, déplacer les images dans le plan.
Au final je me dis que c'est tellement utile pour plein de choses que j'en ferai bien un composant de référence dans mes projets, et pourquoi pas une source que je pourrais humblement soumettre à la communauté de developpez.net.
3 questions préalables :
- Ai-je bien compris, et est-ce bien si difficile d'introduire du Java3D dans un projet qui se veut multi plateforme ? (Compte tenu de mes maigres connaissance)
- Ne suis-je pas en train de vouloir réinventer l'eau chaude, est-ce qu'il existe déjà des classes qui effectuent le même travail ?
- Enfin, si vous me suivez toujours jusque là. Est-ce que vous avez des idées, suggestions, de classes que je pourrais utiliser pour ce mini-projet, et/ou de méthodes et de classes que j'aurai à créer ?
Je dis pas ça pour que quelqu'un fasse à ma place, bien au contraire, je serai ravi de créer un projet pour la communauté, en me forçant pour une fois à travailler de façon la plus générique possible et en respectant toutes les convention.
A bientôt. Merci de votre aide.
Partager