Wszystkie sprity znajdują się w jednym miejscu - dlaczego?

0

Fragment klasy nieprzyjaciele:

monsters monster;
int i;
Sprite type[]={ skeletonS, skeleton_armorS, skeleton_maceS, skeleton_swordS}; // różne typy przeciwników 

		position>>i; // ilość stworzeń 
		for(int f = 0; f<i; f++)
		{
			position>>monster.obj;
			position>>monster.x_e;
			position>>monster.y_e;
			tab.push_back(monster); // vector
		}
		for(int t = 0; t<i; t++) // rysowanie
		{
			windowTest.draw(type[tab[t].obj]);
			type[tab[t].obj].setPosition(tab[t].x_e , tab[t].y_e);
		}

Wszystko to zawarte jest w jednej metodzie w klasie nieprzyjaciele... Problem polega na tym że po uruchomieniu tej metody wszystkie sprity znajdują się w jednym miejscu, lewym górnym rogu. :/

Dodatkowe informacje:

struct monsters
{
int obj, x_e, y_e;
}

zawartość pliku:

2 // ilość
1 // typ
48 // pozycja x
48 // pozycja y...
3
80
80

dodanie znaczników <code class="cpp"> - @furious programming

1

position>>monster.obj; i mu podobne to jakiś bardzo brzydki potworek;
Diagnoza: pewnie w tym potworku przekazujesz coś przez wartość, dlatego ma Cie głęboko w poważaniu.
//EDIT

Po głębszej analizie dochodzę do wniosku, że wypadałoby ten kod wywalić do śmieci, bo jest pełen nieścisłości, niebezpieczności i błędów związanych z architekturą.

Coś jak carbonara w bielsko-białym bon gusto - nie ważne jak wiele pracy w to włożą, z ich spojrzeniem na to i tak zawsze będzie niedogotowane i gorzkie.

0

Wyrzucić... a czym to zastąpić?
Wystarczył by mi jakiś pomysł/algorytm bo teraz to nie mam nawet punktu zaczepienia jak to rozwinąć.
Schemat wygląda tak:
1.Ładuje pliki graficzne, itd
2.przypisuje pozycje i inne dane jak na przykład nazwę itp...
3. Wyświetlam na podstawie tych danych
4.Funkcja ruchu, walki, wypadających przedmiotów itp... // wszystkie funkcje są już gotowe ale przystosowane jak jest jeden nieprzyjaciel, teraz potrzebuje to przerobić tak aby było ich wielu najlepiej pobierając dane z tablicy/vectora :v

Ps. Jestem zielony ;/

0

wystarczyło zamienić miejscami:

type[tab[t].obj].setPosition(tab[t].x_e,tab[t].y_e);
windowTest.draw(type[tab[t].obj]);

Co do:

position>>monster.obj;

informacje miałem stąd:

http://cpp0x.pl/kursy/Kurs-C++/Poziom-4/Wczytywanie-danych-z-pliku-za-pomoca-operatora/325 (na potrzeby nauki mi wystarczy)

1 użytkowników online, w tym zalogowanych: 0, gości: 1