Problem z przekazaniem informacji z funkcji do funkcji
Ostatnio zmodyfikowano 2012-09-17 23:45
Nekronomik Temat założony przez niniejszego użytkownika |
Problem z przekazaniem informacji z funkcji do funkcji » 2012-09-17 22:45:11 Witam,mam problem z przekazaniem informacji z funkcji do funkcji możliwe bardzo że coś pomieszałem albo w ogóle bzdurę napisałem i nie mogę do tego dojść.O to kod i problem: int zaznacz_kafel( bool sprawdz ) { myszka(); if( mx >= 0 && mx <= 48 && my >= 0 && my <= 23 ) { sprawdz = true; } else { sprawdz = false; } return sprawdz; } void mapa() { myszka(); bool prawda; int xx, yy; for( int y = 0; y < 44; y++ ) { for( int x = 0; x < 44; x++ ) { xx =( x - y ) *( szerokosc_kafla / 2 ) + a1; yy =( x + y ) *( wysokosc_kafla / 2 + 1 ) + b1; if( typ[ y ][ x ].kod == typ[ y ][ x ].kod_trawa ) { masked_blit( kafel_trawa, bufor, 0, 0, xx, yy, kafel_trawa->w, kafel_trawa->h ); } if( typ[ y ][ x ].kod == typ[ y ][ x ].kod_ziemia ) { masked_blit( kafel_ziemia, bufor, 0, 0, xx, yy, kafel_ziemia->w, kafel_ziemia->h ); } if( typ[ y ][ x ].kod == typ[ y ][ x ].kod_kamien ) { masked_blit( kafel_kamien, bufor, 0, 0, xx, yy, kafel_kamien->w, kafel_kamien->h ); } zaznacz_kafel( prawda ); if( prawda == 1 ) { masked_blit( kafel_zaznaczenie, bufor, 0, 0, xx, yy, kafel_zaznaczenie->w, kafel_zaznaczenie->h ); } } } }
Jak widać zmienna bool prawda nie odczytuje tego co jest w funkcji int zaznacz_kafel(bool sprawdz). A jak kod z funkcji przenoszę do void mapa() to wszystko działa. |
|
DejaVu |
» 2012-09-17 23:02:06 Funkcja zaznacz_kafel w ogóle się kupy nie trzyma. Przemyśl ją. /edit: Z kodu wynika bowiem, że nie rozumiesz jak działają poszczególne elementy funkcji, czyli: Funkcje - pierwsze starcie. |
|
Nekronomik Temat założony przez niniejszego użytkownika |
» 2012-09-17 23:45:28 Nie wiem jak moglem to przeoczyć w tym kursie.Po prostu zaraz zapadnę się pod ziemie... Poprawiłem kod zaznacz_kafel( prawda ); na prawda=zaznacz_kafel(); i poprawiłem funkcje int zaznacz_kafel na: int zaznacz_kafel() { myszka(); int sprawdz; if( mx >= 0 && mx <= 48 && my >= 0 && my <= 23 ) { sprawdz = true; } else { sprawdz = false; } return sprawdz; }
I teraz wszystko działa. |
|
« 1 » |