Bonjour tout le monde. Je travaille sur un FPS en 3d, et je cherche a créer un hud en 2d (les trucs autour de l'ecran, qui donnent les stats, l'arme utilisée, le radar, le chrono etc etc).
Sauf que je sais pas trop comment faire
J'ai deja commencé avec des images (un flingue en 2d en bas au milieu ^^), puis un pseudo compteur de frags en haut a gauche, qui en fait affiche une image par dessus l'autre a chaque frag (j'ai fait 9 images avec "FRAG 1 !", "FRAG 2 !" etc mais c'est assez... euh... pas cool ? ^^').
Est-ce qu'on est obligé de mettre toujours image par dessus image ? Parce que j'aimerais bien pouvoir afficher une image, la supprimer, la bouger, la redimensionner etc est-ce possible avec Irrlicht ? Si oui comment et si non est-ce qu'on peut utiliser la SDL dans une fenetre Irrlicht ? ^^''
Et sinon tous les conseils seront bienvenus
(Question bonus ^^ : comment on fait pour faire un chronomètre ? J'aimerais un joli chrono du genre 00:57:96, mais avec des images ca risque d'etre chaud... )
Dernière modification par aenahel (25-06-2007 18:37:13)
Hors ligne
Le mieux c'est de transformé tes chiffres en police de caractère et de les affichers comme de banal varaible :
Tu déclare ta police avec :
gui::IGUIFont* font = device->getGUIEnvironment()->getFont("police001.bmp");
et tu affiche T truc avec :
core::stringw strFRAG = L"Frags : ";
strdriver += s32(variable);
strdriver += L" !";
font->draw(strFRAG.c_str(),core::rect<s32>(130,20,300,50),video::SColor(255, 255,255,255));
Ta variable évolue de 1-9, et affiche en x:130, y:20 de couleur blanche :
Frags 1 !
Frags 2 !
Frags 3 !
...
Si tu veux par exemple une image d'explosion qui encadre le mot FRAG 1 ! il suffit de la déclarer avant font->draw.
Pour ton compteur tu utilise le même moyen.
a+
w
EDIT : et d'ailleurs utilise ça pour differents retour d'info durant le jeu (position X, Y, Z, certaine booléenne, lumiere, ...)
Si tu veux un exemple de rendu, je te passe mon jeu (pas du tout optimisé et pas très beau)
Dernière modification par Willikus (25-06-2007 20:23:28)
Hors ligne
Mon code plante :
IGUIFont* font = device->getGUIEnvironment()->getFont("resources/LCD2L___.ttf");
core::stringw strFRAG = L"Frags : ";
strFRAG += fragcounter;
strFRAG += " !";
font->draw(strFRAG.c_str(),core::rect<s32>(130,20,300,50),video::SColor(255, 255,255,255));
Complation sans probleme, mais apres "Windows a rencontré une erreur blabla". TTF pas acceptée ? Si c'est le cas, comment on fait un bmp avec ??? ^^''
Hors ligne
salut
il existe irrfontools livre avec irrlicht repertoire tools je crois
Il permet de creer des polices pour irrlicht tu choisit la police proprement dit puis la taille si c en gras et tout et ensuite il te sort une image.
Je n'est pas teste le nouveau car il ne marche pas ss linux mais le premier est deja bien utile.
Apres je suppose qu'il cree la liste des polices a partir de celle de windows donc il suffit de rajouter ta police au gestionnaire de ttf de windows ds le panneau de configuration.
voila en esperant avoir aide et avoir ete assez clair
dark calculator
Hors ligne
Cool ! ca marche merci !
Hors ligne
Lo,
Je dois être un peu dure à la détente.... j'ai tapé ça :
param.DriverType = video::EDT_DIRECT3D9;
...
gui::IGUIEnvironment * guienv = device->getGUIEnvironment();
gui::IGUIFont* font = guienv->getFont("comic_font_16.bmp");
core::stringw strTest = L"TOTO";
font->draw(strTest.c_str(),core::rect<s32>(230,20,300,300),video::SColor(255, 255,255,255));
et quedal, plante pas, mais rien n'apparait !!!!!!!!
Qu'est-ce que je fais faux ???
Hors ligne
Oups... suis trop c..... j'ai trouvé mon erreur....
mon draw n'est pas entre le beginScene et le endScene !!!!
sorry pour le dérangement.... ;-)
Hors ligne
Options | Liens officiels | Caractéristiques | Statistiques | Communauté |
---|---|---|---|---|
Corrections |
|
xhtml 1.0 css 2.1 Propulsé par FluxBB Traduit par FluxBB.fr |
882 membres 1429 sujets 11119 messages |
Dernier membre inscrit: LiseBuisson96 14 invités en ligne Aucun membre connecté RSS Feed |