#1 

02-09-2007 07:58:34

Willikus
Membres
Avatar de Willikus
Date d'inscription:
Messages: 150
IP: 86.214.189.165
Courriel  Site web

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


Athlon 3000+ / 1024Mo PC3200 /8800 GTS

Hors ligne


#2 

02-09-2007 08:11:42

gp2mv3
Membres
Date d'inscription:
Messages: 103
IP: 81.247.12.239
Courriel  Site web

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


Mon projet sous Irrlicht : RoM : Rebuilding on Mars
N'hésitez pas à y faire un tour wink

Hors ligne


#3 

02-09-2007 15:51:16

Willikus
Membres
Avatar de Willikus
Date d'inscription:
Messages: 150
IP: 86.214.189.165
Courriel  Site web

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


Athlon 3000+ / 1024Mo PC3200 /8800 GTS

Hors ligne


#4 

02-09-2007 16:46:41

gp2mv3
Membres
Date d'inscription:
Messages: 103
IP: 81.247.12.239
Courriel  Site web

Oui c'est sa mon code.
Mais moi il y a une dizaine d'objets seulement.

Bien amicalement.

Gp2mv3


Mon projet sous Irrlicht : RoM : Rebuilding on Mars
N'hésitez pas à y faire un tour wink

Hors ligne


#5 

02-09-2007 17:05:56

Willikus
Membres
Avatar de Willikus
Date d'inscription:
Messages: 150
IP: 86.214.189.165
Courriel  Site web

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 big_smile

Pour l'instant je vais opté pour ta méthode... peut etres un topic que je reveillerais plus tard wink

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 :

c8 tabicone[9999] = {0};

/***main***/
tabicone[1001] = "icone1.jpg"; //(la sa marche pas)

driver2->draw2DImage(driver2->getTexture(tabitem[1001]), core::position2d<s32>(315,474),core::rect<s32>(0,0,35,35),0,video::SColor(255,255,255,255), true); //(la je suppose que non)


Athlon 3000+ / 1024Mo PC3200 /8800 GTS

Hors ligne


#6 

02-09-2007 18:10:41

izguit
Administrateurs
Avatar de izguit
Date d'inscription:
Messages: 306
IP: 83.152.32.23
Courriel  Site web

tableau de string?


Athlon 64 3000+ // 1Go RAM // Geforce 6600GT 128Mo
Turion 64 X2 // 1Go RAM // ATI X1250

Hors ligne


#7 

02-09-2007 18:46:53

Willikus
Membres
Avatar de Willikus
Date d'inscription:
Messages: 150
IP: 86.214.189.165
Courriel  Site web

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 wink

a+
w


EDIT : j'ai reglée le probleme (std:smile
Cependant après :

no matching function for call to `irr::video::IVideoDriver::getTexture(std::string&)'

Comment convertir pour que la chaine soit compatible ?!


Athlon 3000+ / 1024Mo PC3200 /8800 GTS

Hors ligne


#8 

02-09-2007 19:06:43

gp2mv3
Membres
Date d'inscription:
Messages: 103
IP: 81.247.12.239
Courriel  Site web

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


Mon projet sous Irrlicht : RoM : Rebuilding on Mars
N'hésitez pas à y faire un tour wink

Hors ligne


#9 

02-09-2007 20:30:42

Willikus
Membres
Avatar de Willikus
Date d'inscription:
Messages: 150
IP: 86.214.189.165
Courriel  Site web

J'ai enfin (du a mon incapacité) réussi a integrer ton code... vraiment sympa...

Je vous remercis grandement pour votre aide !

a+
w


Athlon 3000+ / 1024Mo PC3200 /8800 GTS

Hors ligne


#10 

03-09-2007 10:07:42

gp2mv3
Membres
Date d'inscription:
Messages: 103
IP: 81.245.149.87
Courriel  Site web

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


Mon projet sous Irrlicht : RoM : Rebuilding on Mars
N'hésitez pas à y faire un tour wink

Hors ligne


#11 

03-09-2007 11:05:31

Willikus
Membres
Avatar de Willikus
Date d'inscription:
Messages: 150
IP: 86.214.6.97
Courriel  Site web

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


Athlon 3000+ / 1024Mo PC3200 /8800 GTS

Hors ligne


#12 

03-09-2007 11:28:41

gp2mv3
Membres
Date d'inscription:
Messages: 103
IP: 81.245.149.87
Courriel  Site web

Je t'ai envoyé un e-mail pour quelques précisions.


Mon projet sous Irrlicht : RoM : Rebuilding on Mars
N'hésitez pas à y faire un tour wink

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
207 invités en ligne
membre en ligne: -
RSS Feed