Tworzę grę karcianą w XNA.
Czy OnClick
w XNA jest jakieś zdarzenie dla obiektów?
Próbuję sprawić, by karty się poruszyły, gdy gracz je kliknie. W tym projekcie jest klasa Sprite, która losuje kartę, ale utknęłam trochę, ponieważ nie wiem, jak używać OnClick
zdarzeń lub czegoś podobnego.
if(MouseLeftPress()){ DoSomething(); }
, gdzieMouseLeftPress()
jest metoda, którą piszesz, aby porównać obecny i poprzedni lewy przycisk myszy. Uważam to za łatwiejsze niż wdrażanie wydarzeń przez większość czasu.Musisz go wdrożyć samodzielnie. Spróbuj obejrzeć samouczek pod adresem : http://bluwiki.com/go/XNA_Tutorials/Mouse_Input
źródło
XNA daje tylko tyle, ile potrzeba do zbudowania własnych klas wejściowych - i powinieneś to zrobić, biorąc pod uwagę oferowane przez nich narzędzie.
Poleciłbym klasę wprowadzania myszy opisaną w tym poście na blogu ( kod źródłowy ). Wykrywa naciśnięcie, przytrzymanie lub zwolnienie przycisku i pozwala uzyskać te informacje za pośrednictwem ankiety lub zdarzeń.
W powiązanej notatce ten sam post na blogu zawiera również klasy urządzeń wejściowych klawiatury i gamepada.
źródło
Rzeczywisty kod sprawdzania kliknięcia myszą w XNA jest mniej więcej taki;
źródło
Jeśli twoja gra jest w 3D, możesz zaimplementować komisjonowanie, które opisano tutaj: http://create.msdn.com/en-US/education/catalog/sample/picking_triangle . Zasadniczo tworzy to promień z kamery do miejsca kliknięcia myszką (z niewielką matrycą, która nie powoduje projekcji), a następnie sprawdzasz, czy któryś z twoich obiektów nie został przecięty przez promień.
Jeśli gra jest 2D, powinieneś być w stanie dość łatwo przetłumaczyć współrzędne okna na współrzędne gry. Następnie sprawdź, czy wybrane współrzędne mieszczą się w granicach dowolnego z twoich obiektów.
źródło
Najprostszym sposobem sprawdzenia, czy kliknięto myszą, jest to
teraz w metodzie aktualizacji dodaj to
mam nadzieję, że to pomogło
źródło