Allegro 2d mmorpg
Ostatnio zmodyfikowano 2008-08-04 21:53
jimmye Temat założony przez niniejszego użytkownika |
Allegro 2d mmorpg » 2008-08-04 19:37:01 Robie ta gre 2d ale cos tu nie gra.. kamera jest podpieta pod ludzika ale jakos dziwnie to wyglada, ekran gry zajmuje pewien kwadratowy obszar w okie 640x480, ale postac moze wyjsc za ten ekran i chodzic po wszystkim.. trzeba tutaj zrobic cos w rodzaju kolizji? http://uploaded.to/?id=k3jn0t <-- tutaj jest gra. nie wiem jak zrobic zeby postac chodzila tylko po kaflach.. i po siatce, moze mi ktos pomoc? Z gory Dziekuje ;-P |
|
Proxym |
» 2008-08-04 20:29:58 hmmm... moze jak nie wiesz jak zrobic kolizje to nie pisz 'robie gre mmorpg 2d', to jakies apogeum. Ktos kto nie umie programowac, chce napisac tibie. Lepiej poczytaj podstawy. |
|
DejaVu |
» 2008-08-04 21:15:24 http://ddt.pl/forum/index.php?Tid=138&p=1 - tu masz poruszony temat kolizji i scrollingu mapy. /edit: Ściągnąłem i zobaczyłem :P - Powód jest prosty - musisz napisać warunki, które ograniczą możliwość wyjścia ludka poza mapę. Czyli np. if( ludek_x <- 5000 ) ludek_x =- 5000; Analogicznie w każdym innym kierunku. |
|
jimmye Temat założony przez niniejszego użytkownika |
kolizja dwoch bitmap. » 2008-08-04 21:15:46 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; } |
|
DejaVu |
Kolizja dwóch obiektów ograniczona prostokątami » 2008-08-04 21:20:37 Zalecam skorzystać raczej z tej funkcji - sprawdzona i przetestowana (i JA ją pisałem ;d) - z tym, że to jest do wykrywania kolizji pomiędzy dwoma obiektami, a nie do ograniczenia tego, żeby ludek Ci poza ekran nie wychodził. bool kolizja( float x1, float y1, float s1, float w1, float x2, float y2, float s2, float w2 ) { if( x1 + s1 >= x2 && x1 <= x2 + s2 && y1 + w1 >= y2 && y1 <= y2 + w2 ) return( true ); return( false ); }
|
|
jimmye Temat założony przez niniejszego użytkownika |
» 2008-08-04 21:53:59 zrobilem tak xd: if( ludek.y >= 310 ) { ludek.y -= 1; ludek.y -= 1; ludek.y -= 1; ludek.y -= 1; ludek.y -= 1; ludek.y -= 1; ludek.y -= 1; ludek.y -= 1; ludek.y -= 1; }; tak samo dla ludek.x i nie moze wyjsc za ekran gry, cofa go :P |
|
« 1 » |