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

Problem ze sztuczną inteligencją [Allegro]

Ostatnio zmodyfikowano 2009-09-27 20:37
Autor Wiadomość
Sajan
Temat założony przez niniejszego użytkownika
Problem ze sztuczną inteligencją [Allegro]
» 2009-09-27 17:48:24
Powiedzmy, że mam dwie postacie. Chcę aby jedna goniła drugą. Robię to za pomocą funcji: if(ax > bx) ax--; if(ay > by) ay--; . Jednak również chcę, aby ta postać, która goni nie chodziła na skos, jednak nie mam pomysłu jak to zrobić.

Mógłby mi ktoś przynajmniej poradzić jak to zrobić. Nie chcę kodu, ale jakiś pomysł.
P-10486
jimmye
» 2009-09-27 18:01:08
Czy w tej Twojej grze/programie postacie chodzą po jakiejś siatce ? Czy luźno po ekranie ? Czy poprostu nie chcesz, żeby chodziły po skosie ?
P-10488
Sajan
Temat założony przez niniejszego użytkownika
» 2009-09-27 18:03:12
Chodzą luźno. Nie chcę żeby chodziły po skosie. Z postacią kierowaną przez gracza już sobie poradziłem, ale nie wiem jak to zrobić z postacią która goni.
P-10489
WinerFresh
» 2009-09-27 19:10:08
Nie ma to jak nowoczesne i wysokozaawansowana AI. To jest większa technologia niż komputery kwantowe.
P-10493
Thud
» 2009-09-27 20:17:05
@up:
Haha... uśmiałem się. :D

Co do tematu... Chyba mylisz pojęcia. Już samo słowo "inteligencja" sugeruje nam, że człowiek "nie ingerował" w działanie programu/bota/robota. To jest tak jak z systemem binarnym - z dwóch różnych bitów powstało wszystko, a z kilku nieznacznych instrukcji powinien powstać samointeligentny twór.
P-10502
Thud
» 2009-09-27 20:42:03
Z tym samointeligentnym tworem to palnąłem, fakt, ale podążając z awiki:
prostej numerycznej algorytmizacjiChodziło mi o to, aby zyski były większe od nakładu pracy.
P-10507
jimmye
» 2009-09-27 21:13:53
Żeby ten 'NPC' nie chodził po skosie, to musisz sobie ustalić, co ile pikseli ma skręcać. Ja proponuje zrobić chodzenie po siatce :P Będzie łatwiej.
Jednak jak byś się uparł, to spróbuj tak:
C/C++
bool walk = false; // zmienna będzie informować, czy postać się porusza

if( ax < bx )
{
    if( !walk )
    {
        walk = true;
        for( int i = 0; i <= bx - ax; i++ )
        /* pętla się przyda, gdy postać będzie oddalona od NPC więcej niż 1 piksel, można wstawić warunek na to, żeby nie używać pętli nawet, gdy postać jest oddalona 1 piksel */
        {
            ax++;
        }
        walk = false;
    }
}
Kiedyś tak blokowałem chodzenie na skos w swojej grze, teraz juz nie musze, bo zrobiłem system kafelkowy i postać chodzi po siatce :P
P-10510
manfred
» 2009-09-27 18:49:27
Dopisać else w odpowiednim miejscu.
P-19377
« 1 » 2
  Strona 1 z 2 Następna strona