[C++ / SFML]
-
Ich möchte in meinem Projekt ein Feld erzeugen mit Hilfe von Vektoren.
Ich habe 2 verschiedene Arten von Feldern, eine Namens Erde und die andere Namens Luft. Wenn ich das Programm starte werden jedoch nur Erdfelder erzeugt.Erzeugung:
std::vector<std::vector<int>> Karte; std::vector<int> TempKarte; for(int x=0; x<40; x++) { for(int y=0; y<22; y++) { TempKarte.push_back(1); } Karte.push_back(TempKarte); } Karte[0][0] = 0; Karte[0][2] = 0; Karte[3][5] = 0; std::vector<Feld> Map; for(int x=0; x<40; x++) { for(int y=0; y<22; y++) { if(Karte[x][y] == 0) { Feld field = Feld("air.png",x*35,y*35); Map.push_back(field); } else if (Karte[x][y] == 1) { Feld field = Feld("dirt.png",x*35,y*35); Map.push_back(field); } else std::cout << "ERROR" << std::endl; } }
Zeichnen:
for(int i=0; i<880; i++) { Map[i].Render(window); }
-
Deine Frage ist völlig unklar. Sicher ist
std::vector<int> TempKarte;
möchtest du innerhalb der ersten for Schleife haben.
-
Aha, Erde ist dann wohl dirt.png. Dann prüfe mit dem Debugger, ob überhaupt air.png Felder erzeugt werden. Wenn ja, ist entweder Feld kaputt (das du nicht zeigst) oder aber der Renderbereich.