Chciałbym zrobić strzelankę z perspektywy pierwszej osoby i przesunąć kamerę za pomocą myszy. Problem polega na tym, że gdy kursor osiągnie granice ekranu, kamera nie będzie się już obracać. Jak mimo to utrzymać mysz w środku i wykryć jej ruchy?
Chciałbym zrobić strzelankę z perspektywy pierwszej osoby i przesunąć kamerę za pomocą myszy. Problem polega na tym, że gdy kursor osiągnie granice ekranu, kamera nie będzie się już obracać. Jak mimo to utrzymać mysz w środku i wykryć jej ruchy?
Odpowiedzi:
Ogólne podejście do obsługi tego w klasycznym programowaniu Win32 polega na uchwyceniu delty myszy w każdej ramce, a następnie zresetowaniu pozycji myszy do środka ekranu. Oczywiście chcesz też, aby kursor myszy był niewidoczny, ponieważ w przeciwnym razie sprawy wyglądają brzydko.
Możesz zrobić to samo w XNA, po prostu pracujesz z nieco innym interfejsem. Więc możesz zrobić coś takiego:
EDYCJA: Również tutaj jest samouczek, który wykopałem za pomocą wyszukiwarki Google dla „XNA względnego wejścia myszy” (o co pytasz). Myślę, że jest trochę stary, więc niektóre metody mogły mieć zmienione nazwy, ale koncepcje powinny nadal obowiązywać.
EDYCJA 2: Chcę powiedzieć „obsługa tego w Win32”, a nie „obsługa tego jest Win32”, odpowiednio zaktualizowana.