lemis.aryl Temat założony przez niniejszego użytkownika |
[Allegro, C++] Wchodzenie do budynków. » 2010-05-23 19:58:20 Chciałbym, aby moja postać mogła wchodzić do budynków. Zrobiłem to tak: if( pomieszczenie == 0 ) { if( warunek1 ) { pomieszczenie = 1; } if( pomieszczenie == 1 ) { if( warunek2 ) { pomieszczenie = 0; } if( pomieszczenie == 0 ) { masked_blit( tlo, bufor, ekran_x, ekran_y, 0, 0, 640, 480 ); } if( pomieszczenie == 1 ) { masked_blit( tlo2, bufor, ekran_x, ekran_y, 0, 0, 640, 480 ); } A moje pytanie to: Czy w dobrym kierunku myślę, czy raczej nad tym problemem powinienem się jeszcze zastanowić i rozwiązać to inaczej? Jeśli ktoś ma jakiś pomysł, to bardzo proszę o odpowiedź. |
|
ison |
» 2010-05-23 21:07:18 myslisz w dobrym kierunku aczkolwiek razem z czasem i nabytym doświadczeniem przyjdzie ci wiele nowych rozwiazań... też przez to przechodziłem -> robienie gier poprzez milion ifów :) to zalezy rowniez na jaka skale chcesz robic gre. Jesli ma tam byc wiecej niz 10 plansz to lepiej jak bedziesz wszystko wczytywal z pliku. Mozesz numerowac wszystkie pomieszczenia od 1 do N i z pliku wczytywac pozycje na ktorych ma przechodzic do danego pomieszczenia... co do wyswietlania to: masked_blit(pomieszczenie[numer],bufor,0,0,0,0,pomieszczenie[numer]->w,pomieszczenie[numer]->h); |
|
lemis.aryl Temat założony przez niniejszego użytkownika |
wczytywanie z pliku » 2010-05-23 21:40:49 |
|
ison |
» 2010-05-23 23:33:11 nie chodzilo mi o wczytywanie bitmap tylko o wczytywanie bazy danych z pozycjami na których przechodzisz do innego pomieszczenia. Mozesz zrobic sobie tablice bitmap i funkcje wczytujaca kolejno z pliku pomieszczenie01.bmp, pomieszczenie02.bmp i tak dalej plus wczytywanie z pliku, powiedzmy z data.dat, zmiennych okreslajacych pozycje na ktorych przemiescisz sie do innego pomieszczenia przykladowa zawartosc pliku data.dat: 1 5 5 2 2 7 7 1 ...
pierwszy wiersz: jesli jestes w pomieszczeniu numer 1 i bedziesz na pozycji 5 5 to przemiescisz sie do pokoju numer 2. analogicznie drugi wiersz tego typu rozwiazanie twojego problemu juz jest znacznie lepsze i moznaby powiedziec 'bardziej profesjonalne' napisanie funkcji ktora bedzie to wykonywala i interpretowala zawartosc pliku data.dat to juz twoje zadanie :) |
|
lemis.aryl Temat założony przez niniejszego użytkownika |
Bazy danych » 2010-05-24 10:40:38 Z bazami danych jeszcze nie miałem do czynienia(a może i tak, a nie miałem o tym pojęcia). Nic... Zabieram się do szukania... |
|
ison |
» 2010-05-24 15:03:42 nie chodzi mi tu o jakies skomplikowane bazy danych. Równie dobrze plik móglby sie nazywac coś.txt. To dat to sobie tylko tak nazwałem :p mozesz normalnie wczytywac z pliku przez ifstream. |
|
lemis.aryl Temat założony przez niniejszego użytkownika |
Obsługa plików » 2010-05-24 20:21:48 Próbuję opanować obsługę plików ale ciężko mi to idzie. Napisałem taką funkcję: void room::odczyt( int ile ) { plik.read( bufor, 3 ); plik.seekg( ile, ios_base::beg ); cout << "wczytano: " << plik.gcount() << " bajtow" << "(" << ile << ")" << endl; cout << "dane z pliku: " << bufor[ 0 ] << " " << bufor[ 1 ] << " " << bufor[ 2 ] << endl; } i p ó ź niej w funkcji main() wpisuj ę : room pom1 , pom2 , pom3 , pom4; pom1.odczyt( 0 ); pom2.odczyt( 1 ); pom3.odczyt( 2 ); pom4.odczyt( 3 ); W pliku txt mam napisane 123 456 789. Jeśli wpiszę wartości ile od 0 do... tak jak powyżej to wszystko gra. Np. dla pom2.odczyt(1)wyświetla 1 2 3, dla pom3.odczyt(2) wyświetla 2 3 _, itd... Ale gdy ustawie wartości 'ile' w innej kolejności to całkiem inaczej wyświetla np. dla pom8.odczyt(0) wyświetla 7 8 _ (zamiast 1 2 3). O co w tym chodzi? |
|
ison |
» 2010-05-24 21:03:36 nie wiem co ty tam namieszałeś, sam sobie komplikujesz sprawe, ale jesli chodzi o zwykle wczytywanie do tablicy to: int zmienna[300];
void wczytaj() { ifstream in("data.dat"); int i=0; while(in >> zmienna[i]) { i++; } }
|
|
« 1 » 2 |