XxMichałxX Opublikowano 3 Marca 2009 Udostępnij Opublikowano 3 Marca 2009 Zrobiłem sobie bota do ponga. Step: GML if y>room_height-70 then y=room_height-70 if y<0 then y=0 if x>room_width-30 then x=room_width-30 if distance_to_object(o_pilka)<250 { if y=o_pilka.y then speed=0 else { speed=4 } } else { speed=2 } direction=point_direction(x,y,x,o_pilka.y) Jest troche nie dociągnięty - paletka trzęsie się, czasami na siłę wali w ściane i tylko w 60% symuluje prawdziwego gracza. Jeżeli macie lepsze pomysły na bota do ponga (napewno ;)) piszcie bede wdzieczny! Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
progio! Opublikowano 3 Marca 2009 Udostępnij Opublikowano 3 Marca 2009 Przede wszystkim paletka komputera powinna poruszać się za piłką. Obierz sobie jej środek, czy bok i niech za nią leci. Dalej, jeżeli piłka odbija się od ściany, to komputer oczywiście już wcześniej może to zauważyć. Łatwo też wyznaczyć przeciwny wektor ruchu piłki (wypadkowy można po prostu policzyć z dodawania wektoru piłki i wektoru ściany, a najlepiej uprościć to wyliczając wektor prostopadły...] . Jednakże liczenie tego jeszcze dużo przed kolizją ze ścianą i szybkie wykorzystanie do AI, nie będzie ani szybkie, ani dobre, bo komputer będzie miał od razu przewagę. Dlatego warto wyznaczyć odpowiednie progi odległości na osi X [najlepiej], ściany od piłki, i wtedy mając odpowiedni kąt, wycofać się paletą w kierunek przeciwny. Wkońcu przy dużych prędkościach, bez tego komp po prostu nie zdąży... To takie podstawy, możesz też potem oprócz taktyki defensywnej, obmyślić strategię ofensywną [walenie bokami pod ostrym kątem?] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
XxMichałxX Opublikowano 3 Marca 2009 Autor Udostępnij Opublikowano 3 Marca 2009 ok thx spróbuję to jakoś wykorzystać. czy zrobic tak: ? ta linia zielona bedzie nie widoczna, gdy pilka jej dotknie paletka komputera leci do x rownego y pilki podczas styknięcia z linią? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
progio! Opublikowano 3 Marca 2009 Udostępnij Opublikowano 3 Marca 2009 Paletka może conajwyżej zrównać swoją pozycje na osi X do pozycji na osi X piłki, gdy jej samej X przekroczy X zielonej linii (ufff?). Tak, paletka może wtedy być pod piłką, ale najlepiej żeby pomału cofała do przewidywalnego miejsca "lądowania" piłki. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Dawidds Opublikowano 3 Marca 2009 Udostępnij Opublikowano 3 Marca 2009 progio, nie czytałem całej Twojej wypowiedzi, ale chyba przegiąłeś :D http://eportal.boo.pl/files/public/ponger_01rc3.zip <- hasło: kostek8 <- musisz se to zdekompilować, bo ja nie mam źródła na kompie, a nie chce mi się laptopa po to włączać. Pozwalam jakby co xP Włączasz dwa okna gry naraz, w jednym klikasz Host, w drugim Connect i pozostawiając adres 127.0.0.1 klikasz OK. Przesuwasz oba okna tak, abyś widział, które jest serwem, a które clientem (pisze to na pasku tytułowym gry (tej grubej niebieskiej belce, na której są guziki do zamykamia/minimalizowania programu xd)). W cliencie wpisujesz "[ENTER], [bACKSPACE], "BOT:1", [ENTER]". Minimalizujesz clienta, przesuwasz sobie okno serwa na środek ekranu, i możesz grać :D (serwis - spacja). Hmmm... A kij. Dam to zaraz jako przykład xP Ed: Oczywiście, masz tam dobre AI :P Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się