• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Tworzenie map kafelkowych

Object Storage Arubacloud
0 głosów
716 wizyt
pytanie zadane 16 października 2018 w C i C++ przez karkul Użytkownik (620 p.)
Witam.

Mógł by mi ktoś krok po kroku wytłumaczyć jak się tworzy mapy kafelkowe ?

jak się dodaje tekstury, i jak zrobić interakcje gracza  z mapa?

1 odpowiedź

0 głosów
odpowiedź 16 października 2018 przez Zayebisty Gaduła (3,200 p.)

jaka biblioteka?

tworzysz tablice np mapa ma miec 10 na 10.. robisz tablice i wpisujesz liczby do niej kazda liczba oznacza inny kafelek mozesz w kodzie z czasem lepiej zrobic edytor i zapisywac do pliku ta tablice.. gdy masz wypelniona tablice w petli ustawiasz pozycje dla kazdego kafelka a pozycja powinna byc szerokosc kafelkow*X i wysokosc kafelkow*y przykladowo

int szerokosc=32;
int wysokosc=32;

int mapa [10] [10]=i tutaj wpisujesz wartosci

for(int y=0; y<=10; y++)
{
 for(int x=0; y<=10; y++)
 {
     kafelek[y][x].setPos.y=y*wysokosc;
     kafelek[y][x].setPos.x=x*szerokosc
 }
}

pisane na szybko moga byc drobne bedy ale chodzi o pokazanie sensu.. wiecej bd mogl pomoc jak podasz bibliotke

komentarz 16 października 2018 przez karkul Użytkownik (620 p.)
biblioteka to sfml
komentarz 17 października 2018 przez Zayebisty Gaduła (3,200 p.)
no to zakladam ze znasz podstawy sfml i c++

tworzysz tablice sprite jesli mapa ma byc wieksza to najlepiej dynamicznie.. robisz tablice i uzupelniasz jak wyzej i nadajesz pozycje kafelkom tak jak pisalem.. a potem w takiej samej petli ifem czy jak wolisz sprawdzasz jaka wartosc ma poszczegolna komurka tabeli i kolejnym spriteom w zaleznosci od wartosci nadajesz odpowiedznia teksture... jak bd mial jeszcze jakies pytania to pisz
komentarz 17 października 2018 przez karkul Użytkownik (620 p.)
a mógłbyś wysłać przykładowy kod z komentarzem? był bym bardzo wdzięczny.
komentarz 17 października 2018 przez Zayebisty Gaduła (3,200 p.)

dawno nie pisalem w sfml ale sprobuje

Sprite sprite[100];   //tworzysz tablice spriteow

Texture texture1;  //tworzysztekstury i przypisujesz im zdjecie to powinienies wiedziec
texture1.loadFromFile("image.png");

Texture texture2;
texture2.loadFromFile("image2.png");

Texture texture3;
texture3.loadFromFile("image.png");

int mapa[100]=... //tworzysz tablice w ktorej sa liczby i kazda liczba bd oznaczac jaka tekstura ma byc w tym miejscu

for(i=0; i<=100; i++) //petla w ktorej nadajesz tekstury spriteom
{
   if(mapa[i]==0)  //sprawdzasz jaka liczba jest w aktualnej komurce tabeli
   {
       sprite[i].setTexture(texture1); //i przypisujesz wtedy odpowiednia texture i tak samo z reszta
   }
    if(mapa[i]==1)
   {
       sprite[i].setTexture(texture2);
   }
    if(mapa[i]==2)
   {
       sprite[i].setTexture(texture3);
   }
}

int x=0;  //przez niego bd mnozyc szerokosc kafla zeby przesuwac kafle
int y=0;  // a przez to wysokosc
int szerokosc_kafla=32;  // mowi samo za siebie
int wysokosc_kafla=32;
for(i=0; i<=100; i++)  petla w ktorej rozmieszczasz kafle od lewej do prawej jesli dojdzie do prawej krawedzi przeskakuje na lewo i o jedna pozycje w dol
{
  sprite[i].setPosition(sf::Vector2f(x*szerokosc_kafla,y*wysokosc_kafla));// przypisujesz pozycje
  x++;
  if(x>=10)// jesli kafle dojda do przegu zacznij stawiac znowu od lewej do prawej i przeskocz o jeden w dol
  {
    x=0;
    y++;
  }
}


 

komentarz 17 października 2018 przez karkul Użytkownik (620 p.)
dzięki wielkie teraz już wszystko rozumiem
komentarz 17 października 2018 przez karkul Użytkownik (620 p.)
mam Jeszce jedni pytanko, jak chcę, żeby niektóre kafle posłużyły za ścianie i gracz nie mógł po nich chodzić, albo niektóre za jakiś inna akcje, to jak to zrobić?
komentarz 17 października 2018 przez Zayebisty Gaduła (3,200 p.)
to juz trudniejsza sprawa najlepiej napisac wlasny system kolizji ale polecam poczytac o tym https://www.sfml-dev.org/tutorials/2.5/graphics-transform.php  zjedz na dol i poczytaj o bounding boxes zarowno dla kazdego kafla jak i dla gracza musisz stworzyc cos takiego w t petli sprawdzasz czy gracz koliduje ze spritem i jesli jest sciana to nie dajesz mu wejsc w nia jutro ci pomoge w razie czego ale najpier poczytaj i sprobuj sam
komentarz 17 października 2018 przez karkul Użytkownik (620 p.)
dzięki
komentarz 18 października 2018 przez karkul Użytkownik (620 p.)
a mam Jeszce jedno pytanie. Kod mapy kafelkowej mam dać bezpośrednio do funkcji Main?
komentarz 18 października 2018 przez Zayebisty Gaduła (3,200 p.)
no to juz zalezy od tego jak tam sobie zaplanowales kod gry.. mozesz zrobic jak chcesz bez roznicy

Podobne pytania

0 głosów
2 odpowiedzi 752 wizyt
pytanie zadane 17 lipca 2018 w Grafika i multimedia przez karkul Użytkownik (620 p.)
+5 głosów
1 odpowiedź 375 wizyt
pytanie zadane 12 kwietnia 2017 w Nasze projekty przez VirtualMember Pasjonat (15,790 p.)
0 głosów
1 odpowiedź 224 wizyt
pytanie zadane 19 lipca 2017 w C i C++ przez WireNess Stary wyjadacz (11,240 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...