Przemok123 Temat założony przez niniejszego użytkownika |
[Allegro] 1000 punktów przy jednej kolizji, problem ? » 2011-10-31 23:31:53 Witam Mam taki problem , robię sobie kolizję "gruszki" z "postacią" i chce ,aby podczas tej kolizji dodawały się mi punkty( oraz wyświetlały) i napisałem tak kolizje: if(( kolizja( ludek.x, ludek.y, ludek.s, ludek.w, gruszka2_x, gruszka2_y, 80, 80 ) == true ) ||( kolizja( ludek.x, ludek.y, ludek.s, ludek.w, gruszka_x, gruszka_y, 80, 80 ) == true ) ||( kolizja( ludek.x, ludek.y, ludek.s, ludek.w, gruszka3_x, gruszka3_y, 80, 80 ) == true ) ) { pkt += 10; }
mój problem polega na tym ,że gdy nastąpi ta kolizja to dodaje punkty ,ale przechodzi przez całą gruszkę i wtedy dodaje tych punktów z 1000 ,a chce żeby dodawało raz 10 (a nie tak dużo) i żeby gruszka znikła (w tym też możecie pomóc, ale ewentualnie w innym temacie). Nie wiem czy dobrze wytłumaczyłem, jak nie , to postaram się jeszcze raz. Z góry dziękuje i pozdrawiam |
|
SeaMonster131 |
» 2011-10-31 23:37:25 Można np tak: bool wyswietl_gruszke = true;
if( kolizja( postac, gruszka ) && wyswietl_gruszke ) { pkt += 10; wyswietl_gruszke = false; }
|
|
Przemok123 Temat założony przez niniejszego użytkownika |
» 2011-10-31 23:49:33 czyli za kolizja( postac, gruszka ) muszę wstawić kolizja( ludek.x, ludek.y, ludek.s, ludek.w, gruszka2_x, gruszka2_y, 80, 80 ) ,a za wyswietl_gruszke , masked_blit( gruszka, bufor, 0, 0, gruszka_x, gruszka_y, gruszka->w, gruszka->h ); ? |
|
SeaMonster131 |
» 2011-10-31 23:56:36 nie do końca, wyswietl_gruszke , to po prostu zmienna bool. Bo przecież wyświetlasz już tą gruszke tak? Tylko jak widze, masz tutaj 3 gruszki, więc korzystając z mojego sposobu to musisz stworzyć 3 zmienne bool, albo po prostu klasę gruszki. |
|
Dawidsoni |
» 2011-11-01 09:41:11 Zrób jak powiedział SeaMonster, a jak chcesz, żeby można było kilka razy zrobić kolizje z tą samą gruszką (i dostać za nią punkty), to zrób tak, że jeśli zmienna wyswietl_gruszke = false to odlicza czas np. do 0,1 sekundy i po tym czasie zmienna wyswietl_gruszke = true. |
|
Przemok123 Temat założony przez niniejszego użytkownika |
» 2011-11-01 09:46:01 chce zrobić tak ,że jak dotknie się postać z gruszką wtedy ma mi punktacji dodać 10 punktów, a mi dodaje z 1000 , znaczy gruszka "przepływa" przez naszą postać i wtedy szybko dodaje 10+10 , aż do około 1000 gdy już przepłynie przez postać. Zrobiłem tak: bool wyswietl_gruszke = true;
if(( kolizja( ludek.x, ludek.y, ludek.s, ludek.w, gruszka_x, gruszka_y, 80, 80 ) == true ) && wyswietl_gruszke ) { pkt += 10; wyswietl_gruszke = false; }
i nadal mam ten sam problem. |
|
Dawidsoni |
» 2011-11-01 09:48:50 Może po prostu tworzysz zmienną wyswietl_gruszke co obieg pętli i wtedy zawsze jest true, bo tak ją inicjalizujesz. Zrób tą zmienną jako daną składową klasy albo zmienną statyczną. |
|
Przemok123 Temat założony przez niniejszego użytkownika |
» 2011-11-01 10:02:05 ooo dzięki , nawet zapomniałem o tej pętli, teraz działa. A teraz nie wiem czy w tym temacie pisać czy w nowym, bo chciałbym ,aby dodatkowo gdy nastąpi ta kolizja i mi sie dodają te punkty to żeby ta gruszka zniknęła. |
|
« 1 » 2 3 |