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

[Allegro] Zmiany pozycji obiektu

Ostatnio zmodyfikowano 2009-10-22 13:06
Autor Wiadomość
wojownik266
Temat założony przez niniejszego użytkownika
[Allegro] Zmiany pozycji obiektu
» 2009-10-22 10:39:40
Witam. Może mi ktoś wyjasnić a następnie wskazać rozwiązanie problemu dlaczego poniższy fragmęt programu zachowuje się tak a nie inaczej? Zadaniem tego fragmętu programu jest zmiana pozycji obiektu po wykryciu kolizji aż do następnej kolizji i tak w koło macieju. wszystko niby działa, tylko z tą różnicą że program opuszcza parę if-ów a następnie powtarza w koło dwie ostatnie instrukcje. Co zrobić żeby program wykonywał wszystkie ify po koleji a następnie wszystkie od początku?

C/C++
if( kolizja1( cel1.x[ 0 ], cel1.y[ 0 ], cel1.s, cel1.w, ludek.x[ 0 ], ludek.y[ 0 ], ludek.s, ludek.w ) == true )

{
    punkty = 1;
    cel1.x[ 0 ] = 540; cel1.y[ 0 ] = 80;
}

if( kolizja1( cel1.x[ 0 ], cel1.y[ 0 ], cel1.s, cel1.w, ludek.x[ 0 ], ludek.y[ 0 ], ludek.s, ludek.w ) == true )
{
    punkty += punkty;
    cel1.x[ 0 ] = 540; cel1.y[ 0 ] = 160;
}
if( kolizja1( cel1.x[ 0 ], cel1.y[ 0 ], cel1.s, cel1.w, ludek.x[ 0 ], ludek.y[ 0 ], ludek.s, ludek.w ) == true )
{
    punkty += punkty;
    cel1.x[ 0 ] = 400; cel1.y[ 0 ] = 140;
}
if( kolizja1( cel1.x[ 0 ], cel1.y[ 0 ], cel1.s, cel1.w, ludek.x[ 0 ], ludek.y[ 0 ], ludek.s, ludek.w ) == true )
{
    punkty += punkty;
    cel1.x[ 0 ] = 520; cel1.y[ 0 ] = 300;
}

if( kolizja1( cel1.x[ 0 ], cel1.y[ 0 ], cel1.s, cel1.w, ludek.x[ 0 ], ludek.y[ 0 ], ludek.s, ludek.w ) == true )
{
    punkty += punkty + 1;
    cel1.x[ 0 ] = 400; cel1.y[ 0 ] = 140;
}
if( kolizja1( cel1.x[ 0 ], cel1.y[ 0 ], cel1.s, cel1.w, ludek.x[ 0 ], ludek.y[ 0 ], ludek.s, ludek.w ) == true )
{
    punkty += punkty + 1;
    cel1.x[ 0 ] = 480; cel1.y[ 0 ] = 280;
}

if( kolizja1( cel1.x[ 0 ], cel1.y[ 0 ], cel1.s, cel1.w, ludek.x[ 4 ], ludek.y[ 4 ], ludek.s, ludek.w ) == true )
{
    punkty += punkty + 1;
    cel1.x[ 0 ] = 400; cel1.y[ 0 ] = 240;
}
if( kolizja1( cel1.x[ 0 ], cel1.y[ 0 ], cel1.s, cel1.w, ludek.x[ 4 ], ludek.y[ 4 ], ludek.s, ludek.w ) == true )
{
    punkty += punkty + 1;
    cel1.x[ 0 ] = 360; cel1.y[ 0 ] = 240;
}
P-11050
DejaVu
» 2009-10-22 12:20:35
Skoro działa źle to znaczy, że źle zaprogramowałeś. Prof prowadzący laboratoria powiedział ostatnio bardzo ważną sentencję:
- macie jakiś problem?
- tak, program nie działa. (podchodzi prof. i dopytuje się co i jak po czym stwierdza)
- nie powiem Wam gdzie jest błąd ot tak. Musiałbym się wczytać w kod, żeby znaleźć błąd. Nie macie jednak żadnego problemu technicznego, że programu nie możecie skompilować, czy też nie wiecie jak coś zrobić. To jest właśnie Wasze zadanie by napisać program tak, aby działał i to Wy macie powalczyć z takimi problemami po to, żeby nauczyć się programowania.

Uważam, że bardzo mądre i wyrafinowane słowa padły na tych laboratoriach, tak więc to samo mogę skierować do Ciebie. Twój fragment kodu działa zgodnie z tym co zaprogramowałeś. Jeśli chciałbyś żeby działał inaczej - zmień go odpowiednio. Tam nie ma żadnej magii, że Ci leci GPF z niewiadomego powodu. To są generalnie proste warunki if i parę zmiennych, które trzeba poprawnie ułożyć do Twojego rozwiązania.

Jeśli ktoś chce Ci pomóc w tym problemie - ok, ale ja umywam ręce. Uważam, że to nie jest skomplikowany problem - wymaga chociażby wzięcia kartki i długopisu w rękę, porysowania przez 5min, a potem posiedzenia kolejnych 10min nad własnym kodem i znalezienia popełnionego błędu logicznego.
P-11051
wojownik266
Temat założony przez niniejszego użytkownika
» 2009-10-22 13:04:01
Żeby wyrazić to co w tej chwili odczuwam po przeczytaniu tego co pan Panie Adamie napisał, musiałbym jeszcze raz bardzo dogłębnie się w to wczytać. Jednak nie zrobię tego. Nie dlatego żebym nie lubił czytać ale dlatego że musiałbym panu trochę nawymyślać i bynajmniej nie dlatego żeś pan przekazał tym pismem wiele mądrego ale dlatego że figa z tego czyli poprawy kodu mego... Będę walczył sam jak na wojownika przystało bo już niechcę więcej błagać i o poprawę kodu prosić. Pora się wynosić!!! Miłego dnia życzę!!!
P-11053
DejaVu
» 2009-10-22 13:06:19
Kiedyś docenisz te słowa.
P-11054
« 1 »
  Strona 1 z 1