Există mai multe modalități de a adăuga o carte în jocul nostru. Astăzi vom analiza cele mai simple pentru a înțelege. Deci, harta este un set
Deci - în acest caz, trei pătrate (dreptunghi), dar o imagine, bine, ca întotdeauna. Fundalul alb pe partea dreaptă am plecat doar pentru imaginația ta și pentru imaginația ta, că poți să te hrănești (pictează în dreapta) și să experimentezi. Fiecare pătrat are o dimensiune de 32 * 32. Așadar, trebuie să selectăm caseta dorită din program, în funcție de condiție. Să încercăm:
Creați un fișier antet separat pentru hartă. În partea stângă, în Solution Explorer, faceți clic dreapta pe elementul „fișierele sursă“, selectați „add“, „a crea un element“, „fayl.h antet“, suna-l map.h faceți clic pe OK. Acum, în acest fișier vom scrie:
dacă (TileMap [i] [j] == '') s_map. setTextureRect (IntRect (0. 0. 32. 32)); // dacă întâlniți un caracter spațial, trageți apoi primul pătrat
dacă (TileMap [i] [j] == 's') s_map. setTextureRect (IntRect (32. 0. 32. 32)); // dacă ați întâlnit simbolul s, apoi desenați pătratul 2
dacă ((TileMap [i] [j] == '0')) s_map. setTextureRect (IntRect (64. 0. 32. 32)); // dacă ați întâlnit simbolul 0, trageți apoi pătratul 3d
s_map. setPoziția (j * 32. i * 32); // De fapt, se răspândește pătratele, transformându-l într-o hartă. adică dă fiecăruia o poziție. dacă este eliminată, întreaga hartă va fi desenată într-un pătrat 32 * 32 și vom vedea un pătrat
fereastră. trage (s_map); // desenați pătratele de pe ecran
Harta a atras. Puteți rula aplicația. camera noastră este staționară și în lecția următoare vom lucra cu aparatul de fotografiat, și apoi forța eroul pentru a interacționa cu elementele hărții (de exemplu, o piatră) și cărămidă (nu-l dau afară, să facă o coliziune).
După cum puteți vedea, toate spritele sunt suprapuse unul pe celălalt și există transparență. Uită-te la modul în care leul și piatra interacționează grafic:
Slyunki curgea, nu?
dacă (TileMap [i] [j] == '') s_map. setTextureRect (IntRect (0. 0. 32. 32)); // dacă întâlniți un caracter spațial, trageți apoi primul pătrat
dacă (TileMap [i] [j] == 's') s_map. setTextureRect (IntRect (32. 0. 32. 32)); // dacă ați întâlnit simbolul s, apoi desenați pătratul 2
dacă ((TileMap [i] [j] == '0')) s_map. setTextureRect (IntRect (64. 0. 32. 32)); // dacă ați întâlnit simbolul 0, apoi desenați pătratul 3d
s_map. setPoziția (j * 32. i * 32); // De fapt, se răspândește pătratele, transformându-l într-o hartă. adică dă fiecăruia o poziție. dacă este eliminată, întreaga hartă va fi desenată într-un pătrat 32 * 32 și vom vedea un pătrat
fereastră. trage (s_map); // desenați pătratele de pe ecran