Salut !
Je me demandais si dans cette ligne de code :
driver->draw2DImage(driver->getTexture("icone.jpg"), core::position2d<s32>(315,474),core::rect<s32>(0,0,35,35),0,video::SColor(255,255,255,255), true);
On peut changer "a chaud" : icone.jpg ?!
Je m'explique :
J'ai un inventaire, et dans cet inventaire, 35 cases (chacune avec cette ligne si dessus) [Bon, ok, c'est pas propre et ça allourdi...].
Cependant, dans chaque cases il pourra y avoir de nombreuses icones (selon l'objet)...
Pour l'instant je fonctionne comme ça :
[Lit un fichier "inventaire" et vois les ID d'objets]->[Récupert l'ID et la position]->[Charge l'image relative a l'ID a la bonne position] (et c'est la que je bloque)
[Ramasse un objet]->[Récupert un ID]->[Ecrit dans un fichier "inventaire"]
Et donc mon rève serai une manip de ce genre :
driver->draw2DImage(driver->getTexture("%i.jpg", item[id]), core::position2d<s32>(315,474),core::rect<s32>(0,0,35,35),0,video::SColor(255,255,255,255), true);
Enfin, j'ai du mal a expliquer...
Quelqu'un peu me donner une piste ?
a+
w
Hors ligne
Moi ce que je fais, c'est un tableau de int.
Je fais aussi un tableau de textures puis je charge tout dans une boucle.
Si tu veux je peux t'envoyer mon code mais j'ai pas trop le temps aujourd'hui.
Bien amicalement.
Gp2mv3
Hors ligne
Et bien oui... je veux bien ^^
(voir aussi la methode de chargement des images)
sinon je pensait faire un truc du genre :
c8 tabicone[9999] = {0};
tabicone[1] = "..."
...
Pour aller récuperer la chose comme ceci
icone1 = tabicone[id];
Enfin, je veux bien ton code (quand tu aura le temps ^^)
a+
w
Hors ligne
Oui c'est sa mon code.
Mais moi il y a une dizaine d'objets seulement.
Bien amicalement.
Gp2mv3
Hors ligne
Ouais... moi je comptais entré plusieurs centaine d'objets (genre Morrowind), mais bon, qu'est ce que 100 ou 200 lignes de codes inutile dans mes 2000 lignes baclées
Pour l'instant je vais opté pour ta méthode... peut etres un topic que je reveillerais plus tard
merci encore
a+
w
EDIT : je vient de voir que l'on ne peut pas faire de tableau C8 pour mon idée de
tabitem[1] = "icone1.jpg";
Comment est ton tableau stp ?!
EDIT2 : Mon code précis :
Dernière modification par Willikus (02-09-2007 19:26:40)
Hors ligne
tableau de string?
Hors ligne
Heu... j'arrive pas a utilisé le string ^^"
Quand je déclare :
string variable="xxxx";
J'ai 'string' undeclared (first use this function)
Je déclare pourtant <string>...
Une petite aide/lien ?
Merci
a+
w
EDIT : j'ai reglée le probleme (std:
Cependant après :
no matching function for call to `irr::video::IVideoDriver::getTexture(std::string&)'
Comment convertir pour que la chaine soit compatible ?!
Dernière modification par Willikus (02-09-2007 21:03:18)
Hors ligne
Voici la déclaration du tableau :
IGUIButton* boutinv[4]; int obj[4]; ITexture* objet[4]; sprintf(chemin, "./models/inventaire/%d.png", obj[0]); objet[0] = driver->getTexture (chemin); sprintf(chemin, "./models/inventaire/%d.png", obj[1]); objet[1] = driver->getTexture (chemin); sprintf(chemin, "./models/inventaire/%d.png", obj[2]); objet[2] = driver->getTexture (chemin); sprintf(chemin, "./models/inventaire/%d.png", obj[3]); objet[3] = driver->getTexture (chemin); sprintf(chemin, "./models/inventaire/%d.png", obj[4]); objet[4] = driver->getTexture (chemin); boutinv[1] = igui->addButton(core::rect<s32>(60,100,90,130), fen_inv, 120, L""); boutinv[1] -> setImage(objet[1]); boutinv[2] = igui->addButton(core::rect<s32>(100,100,130,130), fen_inv, 121, L""); boutinv[2] -> setImage(objet[2]); boutinv[3] = igui->addButton(core::rect<s32>(140,100,170,130), fen_inv, 122, L""); boutinv[3] -> setImage(objet[3]); boutinv[4] = igui->addButton(core::rect<s32>(180,100,210,130), fen_inv, 123, L""); boutinv[4] -> setImage(objet[4]);
Voila, bien amicalement.
Gp2mv3
Dernière modification par gp2mv3 (02-09-2007 21:08:25)
Hors ligne
J'ai enfin (du a mon incapacité) réussi a integrer ton code... vraiment sympa...
Je vous remercis grandement pour votre aide !
a+
w
Hors ligne
De rien.
En faite je ne t'ai pas tout dit, ce sont des boutons et quand on clique dessus il choisis l'arme ou l'armure.
Le int est remplit par une requête winsock et est en fait l'id de l'objet si tu veux.
Voila.
Gp2mv3
Hors ligne
mhmm... je ne vois pas trop ce qu'est le winsock (a part une biblio reseau), mais je trouve que ton idée est propre et bien maléable (je commençais justement a voir pour équiper/deséquipé)...
Mais pour l'instant, aller plus loin sur l'inventaire est difficile car il me faut maintenant avancer sur une autre partie :p
Merci beaucoup (en plus je vient enfin de comprend le gui d'irrlicht grace a ça ![imaginé mon ignorance...])
a+
w
Hors ligne
Je t'ai envoyé un e-mail pour quelques précisions.
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 41 invités en ligne Aucun membre connecté RSS Feed |