DejaVu |
» 2009-08-11 16:55:03 Powiem Ci, że dokładnie taki sam problem rozwiązywałem komuś na forum i wklejałem poprawiony kod. Co więcej robiłem nawet do tego obrazek. |
|
szyx_yankez Temat założony przez niniejszego użytkownika |
» 2009-08-11 17:00:30 poproszę o link do tej strony. Dzięki za wszystko |
|
malan |
» 2009-08-11 17:02:21 |
|
szyx_yankez Temat założony przez niniejszego użytkownika |
» 2009-08-11 17:17:28 Ja nie mam mapy kafelkowej.Ten temat mi się chyba nie przyda. Ale wymyśliłem coś takiego. if( key[ KEY_RIGHT ] || key[ KEY_LEFT ] ) { if( ludek_x > 400 && kolizja( ludek_x, ludek_y, 100, 100, rura_x, rura_y, 104, 104 ) == true ) { ludek_x++; } else if( ludek_x < 400 && kolizja( ludek_x, ludek_y, 100, 100, rura_x, rura_y, 104, 104 ) == true ) { ludek_x--; } }
ludek nie może przejść przez rurę z lewej i prawej strony jednak wciąż może wskoczyć górą. Ale tego to już nie umie zrobić. pomocy!!!!!! |
|
DejaVu |
» 2009-08-11 22:38:20 Jak pokombinujesz to Ci się uda... szczerze mówiąc to dzisiaj nie mam zbytnio ochoty na zagłębianie się w Twój przedstawiony problem. Na forum do tej pory istnieje 77 różnych stron poświęconych samemu tematowi kolizji na forum. Daje to około 400 postów poświęconych samej kolizji... prawdopodobnie 25% postów to moje odpowiedzi do tematów podobnych jak Twój. Jednym ze starszych tematów był problem platformówki, na której było zrobione: 1) scrollowanie mapy 2) ludek skaczący 3) platforma na którą ludek mógł stawać Lista tematów: [google] site:ddt.pl kolizjeTo jest bardzo zbliżone tematycznie do tego co Ty chcesz osiągnąć. Poszukaj tego. |
|
szyx_yankez Temat założony przez niniejszego użytkownika |
» 2009-08-12 09:37:31 Po długim kombinowaniu wykombinowałem. Coś takiego. int predkosc1 = 0; int predkosc2 = 0;
if( key[ KEY_RIGHT ] && ludek_y == 435 || ludek_y == 435 && key[ KEY_LEFT ] ) { if( ludek_x > 400 && kolizja( ludek_x, ludek_y, 66, 88, rura_x, rura_y, 94, 98 ) == true ) { ludek_x++; } else if( ludek_x < 400 && kolizja( ludek_x, ludek_y, 66, 88, rura_x, rura_y, 94, 98 ) == true ) { ludek_x--; } }
if( kolizja( ludek_x, ludek_y, 66, 88, rura_x, rura_y, 94, 98 ) == true && ludek_y == 355 ) { predkosc = 0; predkoscx = 0; predkosc1 =- 10; predkosc2 =- 2; poziomgruntu = 356; }
ludek_y += predkosc1; ludek_x -= predkosc2;
if( ludek_y >= poziomgruntu ) { predkosc1 = 0; predkosc2 = 0; ludek_y = poziomgruntu; }
while( juz > 0 ) { if( ludek_y == 356 && ludek_x <= 325 ) poziomgruntu = 435; if( ludek_y == 356 && ludek_x >= 475 ) poziomgruntu = 435; juz--; }
1. Gdy ide z lewej ludek zatrzymuję sie. 2. Gdy ide z prawej ludek też się zatrzymuje. 3. Gdy skakam z lewej strony na rure ludek staje na niej. 4. Gdy ludek jetst na krawędzi rury spada na ziemie. To wszystko działa ciesze się. Jednak gdy skakam z prawej strony na rurę ludek się zapada. Dlaczego tak się dzieje jaki jest błąd. I czy dało by się skrócić jakoś ten długi kod. Z góry dziekuję za odpowiedzi. |
|
DejaVu |
» 2009-08-12 21:14:48 Jakie są szanse, że wartość zmiennej ludek_y==355? Zauważ, że wartość zmieniasz co kilka jednostek. Musisz warunek lepiej napisać. Przykładowo:
1) wykonaj ruch w bok (lewo/prawo) 2) jeśli jest kolizja - cofnij ostatni ruch 3) wykonaj ruch w górę/w dół 4) jeśli jest kolizja - cofnij ostatni ruch |
|
manfred |
» 2009-08-11 10:33:52 Najpierw zmień nazwę, bo ten Japończyk od Mario może cię do sądu za to podać. |
|
1 2 « 3 » 4 |