Napisałem bota do kontrolowania gry wyścigowej za pomocą Java Robot. Bot działa dobrze dla Need For Speed Underground z wyjątkiem klawisza "Down" (klawisze góra, lewo, prawo działają bardzo dobrze). Jednak mój bot nie może kontrolować Need For Speed Most Wanted.Gra "Need for Speed Most Wanted" nie może być kontrolowana przez klasę Java Robot
Bot działa dobrze, ale gra nie akceptuje symulowanych kluczowych zdarzeń. Zrobiłem trochę wyszukiwania i okazało się, że gra jest oparta na DirectX. W DirectX zdarzenia klawiatura/mysz są wyjątkowe. Wygląda na to, że gra "zadaje" bezpośrednio klawiaturę, a nie przez Windows. I próbuję swojego programu w CS i stwierdziłem, że działa całkiem nieźle.
Programuję w Windows 7, używając Eclipse i Java 1.6. Tak więc chcę zapytać, dlaczego nie potrzebuje akceptowalnych, kluczowych zdarzeń i jak rozwiązać ten program? Dziękuję Ci.
Napisałem program testujący, aby zaakceptować kluczowe zdarzenia z bota. Wyniki pokazują, że keyPressed, keyReleased i keyTyped są wyzwalane. Nie rozumiem twojego punktu widzenia. I dziękuję za twoją radę. Pamiętam to.^_^ – suiyemin
Chodzi mi o to, że powiedziałeś, że zadziałał klucz A-Z. Cóż, te naciśnięcia klawiszy wygenerują zdarzenie keyTyped, ponieważ są one znakami możliwymi do wyświetlenia. Z drugiej strony klawisze strzałek nie generują wyświetlanych znaków, więc nawet jeśli zostanie wygenerowane zdarzenie keyTyped, będzie zawierało niezdefiniowaną wartość dla wpisanego klucza. Może to powoduje problem w kodzie. Jeśli zauważysz, że mój robot śledzi tylko zdarzenia keyPressed i keyReleased, nie martwi się o zdarzenia keyTyped. Nie wiem, czy to robi różnicę, czy nie, ale może zignorować zdarzenia keyTyped. – camickr
To dobra uwaga. Dzięki. – suiyemin