Jaklub Opublikowano 20 Maja 2007 Udostępnij Opublikowano 20 Maja 2007 Robię platformówkę na PSP. Wszystko by szło gładko, gdyby nie problem. Mam errory: - redefinition of wallmake0 - previous definition of wallmake0 was here - redefinition of wallmake1 - previous definition of wallmake1 was here - redefinition of wallmake2 - previous definition of wallmake2 was here Wszystkie dotyczą pliku wallmake.h, który wygląda tak: void wallmake0(int wx1, int wx2, int wy1, int wy2) { // Make a wall with id 0. int wall_exists_0; int wall_x1_0; int wall_x2_0; int wall_y1_0; int wall_y2_0; wall_exists_0=1; wall_x1_0=wx1; wall_x2_0=wx2; wall_y1_0=wy1; wall_y2_0=wy2; } void wallmake1(int wx1, int wx2, int wy1, int wy2) { // Make a wall with id 1. int wall_exists_1; int wall_x1_1; int wall_x2_1; int wall_y1_1; int wall_y2_1; wall_exists_1=1; wall_x1_1=wx1; wall_x2_1=wx2; wall_y1_1=wy1; wall_y2_1=wy2; } void wallmake2(int wx1, int wx2, int wy1, int wy2) { // Make a wall with id 2. int wall_exists_2; int wall_x1_2; int wall_x2_2; int wall_y1_2; int wall_y2_2; wall_exists_2=1; wall_x1_2=wx1; wall_x2_2=wx2; wall_y1_2=wy1; wall_y2_2=wy2; } Te funkcje są użyte w pliku stage1.h, który jest taki: #include "wallinit.h" // Stage 1-1 Play int stage11() { // Set wall 1 - ceiling wallmake0(0,480,0,64); // Set wall 2 - wall wallmake1(0,64,64,192); // Set wall 3 - floor wallmake2(0,480,192,272); char buffer[200]; Image* ourImage; sprintf(buffer, "/data/stages/stage11.png"); ourImage = loadImage(buffer); while(1) { blitAlphaImageToScreen(0 ,0 ,480 , 272, ourImage, 0, 0); } } Za nic nie wiem, co zmienić. :( Czy ktoś może mi pomóc? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 20 Maja 2007 Filar Społeczności Udostępnij Opublikowano 20 Maja 2007 A wallinit.h? Poza tym w tychże funkcjach definiujesz zmienne, które automatycznie są i tak niszczone. Głupie to trochę. :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 20 Maja 2007 Autor Udostępnij Opublikowano 20 Maja 2007 A wallinit.h? Pomyliłem się w pisaniu posta, wallmake.h to wallinit.h. Poza tym w tychże funkcjach definiujesz zmienne, które automatycznie są i tak niszczone. Głupie to trochę. :) Niezupełnie wiem, o co chodzi z tym zniszczeniem. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 20 Maja 2007 Filar Społeczności Udostępnij Opublikowano 20 Maja 2007 No chodzi o to, że zmienna zadeklarowana w jakimś zasięgu nie jest widoczna poza jej granicami ( znaki { i } ). Przykład: while ( true ) { int aaa; aaa = 4; break; } tutaj aaa już nie, bo zostało zniszczone po wyjściu programu poza zasięg pętli while. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Firemark Opublikowano 21 Maja 2007 Udostępnij Opublikowano 21 Maja 2007 No chyba,że da ją do global ;] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 21 Maja 2007 Filar Społeczności Udostępnij Opublikowano 21 Maja 2007 W C nie ma globali. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 21 Maja 2007 Autor Udostępnij Opublikowano 21 Maja 2007 Zaczynam rozumieć. Czyli takie zmienne muszą być zadeklarowane przed mainem i innymi funkcjami? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 21 Maja 2007 Filar Społeczności Udostępnij Opublikowano 21 Maja 2007 Nie. Powinieneś poznać zasady pisania obiektowego, bo strukturalnie pisząc nic dobrego z tego nie wyjdzie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Jaklub Opublikowano 21 Maja 2007 Autor Udostępnij Opublikowano 21 Maja 2007 Czyli gdzieś przed mainem powinno być: class murek { public: unsigned int x1; unsigned int x2; unsigned int y1; unsigned int y2; }; A potem przy robieniu leveli: murek mur1; mur1.x1=0; mur1.x2=32; mur1.y1=0; mur1.y2=32; Czy jakoś tak powinno to wyglądać? Przestudiowałem szybko artykuł napisany przez Vardiego (big thx!). A tak propos: jak można tworzyć zależność od jakiegokolwiek objektu z danej klasy? Chodzi o np. sprawdzanie kolizji z jakimkolwiek objektem klasy mur za pomocą if-ów. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się