Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Allegro, C++] Wchodzenie do budynków.

Ostatnio zmodyfikowano 2010-05-26 15:54
Autor Wiadomość
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:
C/C++
if( pomieszczenie == 0 )
{
    //'0' oznacza, że postać jest na zewnątrz
    //akcje na zewnątrz
    if( warunek1 ) //warunek1 oznacza miejsce drzwi budynku,
    //którymi wchodzimy do środka
    {
        pomieszczenie = 1; //'1' oznacza, że znalazł się w budynku
    }
    if( pomieszczenie == 1 )
    {
        //akcje dla pomieszczenia
        if( warunek2 ) //warunek2 oznacza miejsce drzwi w pomieszczeniu,
        //którymi wychodzimy na zewnątrz
        {
            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ź. 
P-17107
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);
P-17108
lemis.aryl
Temat założony przez niniejszego użytkownika
wczytywanie z pliku
» 2010-05-23 21:40:49
Wczytywać z pliku na takiej zasadzie jak animację Easykodera? http://www.easykoder.vot.pl/arty/animacja_postaci
P-17109
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 :)
P-17110
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...
P-17111
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.
P-17117
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ę:
C/C++
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?
P-17128
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++;
   }
}
P-17129
« 1 » 2
  Strona 1 z 2 Następna strona