#0 

25-06-2007 18:34:58

aenahel
Petit nouveau
Date d'inscription: 05-06-2007
Messages: 8

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 hmm

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 smile 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 smile

(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... hmm)

Dernière modification par aenahel (25-06-2007 18:37:13)

Hors ligne


#1 

25-06-2007 20:20:45

Willikus
Abonné
Date d'inscription: 21-10-2006
Messages: 150
Site web

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)


Athlon 3000+ / 1024Mo PC3200 /8800 GTS

Hors ligne


#2 

27-06-2007 21:16:02

aenahel
Petit nouveau
Date d'inscription: 05-06-2007
Messages: 8

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


#3 

28-06-2007 10:54:05

dark calculator
Abonné
Date d'inscription: 25-02-2007
Messages: 153

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


#4 

28-06-2007 14:22:53

aenahel
Petit nouveau
Date d'inscription: 05-06-2007
Messages: 8

Cool ! big_smile ca marche merci !

Hors ligne


#5 

18-12-2008 00:10:34

meg
Petit nouveau
Date d'inscription: 16-12-2008
Messages: 6

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


#6 

18-12-2008 00:15:48

meg
Petit nouveau
Date d'inscription: 16-12-2008
Messages: 6

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
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
883 membres
1429 sujets
11121 messages
Dernier membre inscrit: Saidov17
125 invités en ligne
Aucun membre connecté
RSS Feed