Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Allegro 2d mmorpg

Ostatnio zmodyfikowano 2008-08-04 21:53
Autor Wiadomość
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
P-1155
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.
P-1159
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.
P-1162
jimmye
Temat założony przez niniejszego użytkownika
kolizja dwoch bitmap.
» 2008-08-04 21:15:46
C/C++
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;
   
}
P-1163
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ł.
C/C++
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 );
}
P-1164
jimmye
Temat założony przez niniejszego użytkownika
» 2008-08-04 21:53:59
zrobilem tak xd:

C/C++
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
P-1166
« 1 »
  Strona 1 z 1