bingo009 Temat założony przez niniejszego użytkownika |
Nie wyświetla obrazka » 2011-04-21 16:21:50 Witam piszę w Allegro najprostszą platformówkę jaką można zrobić. Nie oczekuje za wiele bo ja się ucze. Otóż zrobiłem kawałek mapki. Chciałbym go wyświetlić na buforze i tu pojawią się problem. Wogóle go nie widać ani na ekranie ani na buforze. Postać działa ale nawet jak obrazek ładuje przed Playerem i tak to nic nie daje. Tu mój kod(cały z main.cpp): http://wklej.org/id/516709/
I tak poza tematem. Gdzie znajde prosty tutek tworzenia prostej kolizij dla prostokąta? |
|
McAffey |
» 2011-04-21 16:53:48 Trawę ("grass") wyświetlasz przed pętlą, a potem w pętli czyścisz bufor. Musisz dodać : draw_sprite( bufor, grass, 0, 440 ); po : clear_to_color( bufor, makecol( 150, 150, 150 ) ); ale przed : blit( bufor, screen, 0, 0, 0, 0, 640, 480 ); ;) Ps. Kod wstawiaj razem z postem, tylko umieszczaj go w tagach [cpp]...[/cpp] . edit: Co do tych kolizji, to nie znam żadnego tutoriala do tego, ale na forum było to nie raz omawiane, poszukaj sobie za pomocą tej wyszukiwarki na górze. |
|
dmx81 |
» 2011-04-21 18:46:28 prosta kolizja dla prostokata - najlepiej kartka w kratke + olowek (serio mowie, no juz juz...). Narysuj 2 prostokaty kolidujace ze soba w najrozniejsze sposoby i opisz, jakie warunki sa spelnione. Aby prosciej bylo zaczac: A____B | a _ |__b | c[ _|__]d C----D if( a.x <= D.x && a.x >= C.x &&...) kolizja = true;
to tylko przyklad, jak sie do tego mozna zabrac, oczywiscie w allegro bedziesz uzywal pozycji X,Y, X+szerokosc, Y+wysokosc, mam nadzieje, ze rozumiesz o co chodzi. napisz sobie jakies warunki, pozniej zmien ustawienie protokatow i sprawdz, czy twoj "algorytm wykrywania kolizji" zadziala rowniez w tym przypadku, jesli tak, to znaczy, ze jest ok, jesli nie - znaczy, ze czegos nie dopisales. Jakby co, to pytaj smialo (ale zanim zapytasz, wysil sie i skup, moze dasz rade sam ;) ) |
|
bingo009 Temat założony przez niniejszego użytkownika |
» 2011-04-21 21:01:11 Nie będe zaśmiecał forum więc dam to w tym topicu. Otóż zrobiłem sobie taką kolizję: Nad main to: bool kolizja( int x1, int y1, int s1, int w1, int x2, int y2, int s2, int w2 ) { if( x2 <= x1 + s1 && x2 > x1 && y2 >= y1 && y2 <= y1 + w1 ) return true; else if( x2 <= x1 + s1 && x2 > x1 && y2 + w2 >= y1 && y2 + w2 <= y1 + w1 ) return true; else if( x2 + s2 <= x1 + s1 && x2 + s2 > x1 && y2 >= y1 && y2 <= y1 + w1 ) return true; else if( x2 + s2 <= x1 + s1 && x2 + s2 > x1 && y2 + w2 >= y1 && y2 + w2 <= y1 + w1 ) return true; else return false; }; a w pętli głównej to: if( kolizja( player_x, player_y, player0->w, player0->w, grass_x, 448, grass->w, grass->h ) == true ) { player_y -= 1; } Warunek wydaję się spoko bo podłoże będzie w lini prostej więc nie będe musiał dla każdego kawałka tworzyć kolizij. I teraz mam drobne pytanie. Chce ułożyć podłoże z kafelków. I ułożyłem jeden wiecie jak. Teraz jak chce z tych kafelków stworzyć podłoże to mam problem. Czy mam ustawiać kilkadziesiąt kafelków czy może jest jakaś funkcja? |
|
McAffey |
» 2011-04-21 21:41:56 Na forum panuje zasada jeden temat = jeden problem, załóż osobny temat z tymi kolizjami. Powiedz lepiej jak ten obrazek, działa już wszystko ? ;) |
|
bingo009 Temat założony przez niniejszego użytkownika |
» 2011-04-22 15:46:54 Tak super. Przepraszam za to zamykam ten temat. |
|
« 1 » |