|
dev.gamez.lv Latvian Game Developers Community
|
View previous topic :: View next topic |
Author |
Message |
AnetiX Indago Uzvarētājs
Joined: 05 Jun 2003 Posts: 573
|
Posted: Thu Mar 15, 2007 10:35 am Post subject: IrrXML un datu saglabāšana |
|
Sāku jūzot Dev-C++. Problēma sekojoša:
Izmantoju IrrXML lai nolasītu datus no XML faila:
Code: | IrrXMLReader* xml = createIrrXMLReader("karte.xml");
while(xml && xml->read()){
if (!strcmp("sniegs", xml->getNodeName())){
// xml->getAttributeValueAsInt("x");
// xml->getAttributeValueAsInt("y");
}
delete xml; |
Kā jāveido pareizi klase, masīvs, vai pat nezinu, kas, lai varētu saglabāt x,y vērtību + vēl kaut kādu papildvērtību.
Iekš Delphi es veidotu multidimensionālu masīvu: karte[x][y].tips="sniegs";, un tad, pēctam varu uzreiz noskaidrot, kāda vērtība ir lauciņam, piem 2x5. Kā iekš Dev-C++ var pareizāk un ātrāk ko tml saveidot? Jāņem vēl vērā, ka karte.xml x un y vērtības var būt ļoti lielas un negatīvas, kā arī, punkts var būt laukā 1x1 un 100000x1, un tāpēc veidot vienu masīvu ar 100000 garumu nebūtu īsti pareizi. _________________ Miljons iemeslu, kāpēc Latvija ir labākā valsts pasaulē
http://www.millionreasonswhylatviaisthebestcountryintheworld.com |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Thu Mar 15, 2007 11:53 am Post subject: |
|
Tev vajadzētu saprast, ka Dev-C++ ir tikai IDE, bet nevis valoda vai bibliotēka. Tāpēc jautājums "Kā iekš Dev-C++ var pareizāk..." skan ļoti dīvaini..
Vai tiešām tev vajag šos datus glabāt xml failā? Ja jau tas tev ir tīrs divdimensiju masīvs no stringiem tad glabā tos arī tā - kautvai katru stringu atdalītu ar atstarpi pēc kārtas garā rindā. To ielasot izveido savus masīvus (std::vector) un viss. Ja nu ļoti gribās lietot xml'u, tad visdrīzāk taisi vienkārši kaudzi ar nodēm, kas būs tā masīva elementi pēc kārtas (nodes xml failos vienmēr ir sakārtotā veidā - pēc kārtas tb):
Code: | <elements tips="sniegs" kautkas_cits="1"/>
<elements tips="akmens" kautkas_cits="2/>
... |
Ja tu saki, ka masīvs var būt ļoti liels, tad neko prātīgāku kā vainu skriešanu xml child'u masīvam cauri (lēni, bet maz atmiņas izmanto), vai arī xml childu salikšanu mapā (std::map<Vector2, Element> - ātri, bet vairāk atmiņas izmantos), nezinu ieteikt. Šajā gadījumā, protams, tiem <elements> elementiem nāksies x un y blakus glabāt.
Offtopiks: vai tiešām xml->getNodeName() atgriež char* nevis std::string? Dikti jocīgi. Un es biju domājis, ka Irrlicht ir kārtīga C++ bibliotēka... |
|
Back to top |
|
|
elvman Indago Uzvarētājs
Joined: 09 Apr 2003 Posts: 1278 Location: Kuldiga
|
Posted: Thu Mar 15, 2007 8:47 pm Post subject: |
|
Ieej irrlicht maajas lapaa (irrlicht.sf.net). Noteikti atradiisi visu vajadziigo informaaciju. Pats, kad izmantoju irrlicht, arii ar shamo njeemos un tutoriali vinju lapaa ir pietiekami. Ja nepietiek, tad pameklee forumos, tur toch atradiisi vajadziigo info. _________________ long time; /* know C */ |
|
Back to top |
|
|
bubu Indago Uzvarētājs
Joined: 23 Mar 2004 Posts: 3223 Location: Riga
|
Posted: Thu Mar 15, 2007 9:57 pm Post subject: |
|
elvman, es jau sapratu, ka ne jau problēma ir nemācēšanā kautko izdarīt ar irrlicht'u. Bet gan problēma ir tajā kā veidot xml failu, tb tā struktūru. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|