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

Podązanie za elementem Allegro c++

Ostatnio zmodyfikowano 2010-08-26 11:28
Autor Wiadomość
matig16
Temat założony przez niniejszego użytkownika
Podązanie za elementem Allegro c++
» 2010-08-22 10:01:46
Znowu mam problem, tym razem z AI chodzi mi oto żebym ja mógł poruszać się i żeby wróg za mną podążał nie mam pomysłu jak to zrobić.
P-21094
waxx
» 2010-08-22 10:50:37
C/C++
class Vector2
{
    public float x;
    public float y;
    public Normalize()
    {
        float len = Math.Sqrt( x * x + y * y );
        x = x / len;
        y = y / len;
       
    }
    ///chcesz to sobie wiecej napisz np przeciaz operatory czy cos 
   
};


Vector2 enemyDir;
enemyDir.x = enemy.x - player.x;
enemyDir.y = enemy.y - player.y;
enemyDir.Normalize();

enemyPos.x += enemyDir.x * speed;
enemyPos.y += enemyDir.y * speed;
P-21095
matig16
Temat założony przez niniejszego użytkownika
» 2010-08-22 11:18:07
Napisałem sobie dość prosty algorytm właśnie dochodzenia do tej mojej postaci ale nie wiem co dalej, żeby moją postać chodziła i także wróg w tym samym momencie. A za bardzo jeszcze sobie z klasami nie radzę :P.


chodzenie:
C/C++
//Algorytm Chodzenia
if( min == a )
{
    if( kwadrat_x > circle_x )
   
    {
        while( kwadrat_x > circle_x )
        {
           
            kwadrat_x--;
           
            masked_blit( kwadrat, bufor, 0, 0, kwadrat_x, kwadrat_y, kwadrat->w, kwadrat->h );
            blit( bufor, screen, 0, 0, 0, 0, 800, 600 );
            clear_to_color( bufor, makecol( 255, 255, 255 ) );
            rest( 10 );
           
        }
       
    }
    else if( kwadrat_x < circle_x )
    {
        while( kwadrat_x < circle_x )
        {
           
            kwadrat_x++;
           
            masked_blit( kwadrat, bufor, 0, 0, kwadrat_x, kwadrat_y, kwadrat->w, kwadrat->h );
            blit( bufor, screen, 0, 0, 0, 0, 800, 600 );
            clear_to_color( bufor, makecol( 255, 255, 255 ) );
            rest( 10 );
           
        }
    }
   
    if( kwadrat_y < circle_y )
    {
        while( kwadrat_y < circle_y )
        {
            kwadrat_y++;
            masked_blit( kwadrat, bufor, 0, 0, kwadrat_x, kwadrat_y, kwadrat->w, kwadrat->h );
            blit( bufor, screen, 0, 0, 0, 0, 800, 600 );
            clear_to_color( bufor, makecol( 255, 255, 255 ) );
            rest( 10 );
        }
    }
    else if( kwadrat_y > circle_y )
    {
        while( kwadrat_y < circle_y )
        {
            kwadrat_y++;
            masked_blit( kwadrat, bufor, 0, 0, kwadrat_x, kwadrat_y, kwadrat->w, kwadrat->h );
            blit( bufor, screen, 0, 0, 0, 0, 800, 600 );
            clear_to_color( bufor, makecol( 255, 255, 255 ) );
            rest( 10 );
        }
    }
   
}
P-21096
waxx
» 2010-08-22 11:44:46
To bierz sie za klasy bo sposob podany przeze mnie jest najdokladniejszy i najszybszy :P Dobrej gry bez programowania obiektowego nie napiszesz, ktore wydaje sie trudne a tak na prawde ulatwia pisanie masakrycznie.
P-21097
matig16
Temat założony przez niniejszego użytkownika
» 2010-08-22 11:52:03
No to będę musiał się poduczyć klas :D
P-21098
matig16
Temat założony przez niniejszego użytkownika
» 2010-08-22 13:02:15
Napisałem sobie tą klasę ale nie wiem o co za bardzo w niej chodzi ;].Zauważyłem że odejmuje współrzędne x wroga i mojej postaci potem to pierwiastkuje dzieli wynik pierwiastkowania przez wynik odejmowania tego wcześniejszego ale nie wiem wogóle po co ona to robi chciałem jakoś to zrozumieć ale nie potrafię.
P-21102
waxx
» 2010-08-22 13:26:12
Aby poznac kierunek w ktorym wrog musi sie poruszac potrzebujesz znalezc wektor miedzy wrogiem a playerem, nastepnie go normalizujesz po to by uzyskac wektor jednostkowy i nim manipulowac do zwiekszania speeda.
Podstawy fizy sie klaniaja

http://www.gamedev.pl/files/articles/kmo2d/wsteppodstawy.pdf
P-21104
matig16
Temat założony przez niniejszego użytkownika
» 2010-08-26 11:28:55
Dobra niby już wróg ładnie do mnie dochodzi, ale kiedy idę np w lewo swoim playerem to wróg leci z dużą szybkością w przeciwną stronę i nagle jakby znowu obliczył dobrą trasę i znowu podąża za mną.I teraz pytanie do was co robię źle ?
P-21262
« 1 »
  Strona 1 z 1