Estou desenvolvendo um jogo de cartas no XNA.
Existe algum OnClick
evento no XNA para objetos?
Estou tentando fazer com que as cartas se movam quando o jogador clica nelas. Neste projeto, há uma classe Sprite que compra o cartão, mas estou um pouco paralisada porque não sei como usar OnClick
eventos ou algo assim.
if(MouseLeftPress()){ DoSomething(); }
, ondeMouseLeftPress()
é um método que você escreve para comparar os estados atuais e anteriores do botão esquerdo do mouse. Acho isso mais fácil do que implementar eventos na maioria das vezes.Você precisará implementá-lo você mesmo. Tente olhar para o tutorial em: http://bluwiki.com/go/XNA_Tutorials/Mouse_Input
fonte
O XNA fornece apenas o suficiente para criar suas próprias classes de entrada - e você deve fazê-lo considerando o utilitário que elas oferecem.
Eu recomendaria a classe de entrada do mouse descrita nesta postagem do blog ( código fonte ). Ele detecta um botão sendo pressionado, pressionado ou liberado e permite que você obtenha essas informações por meio de pesquisas ou eventos.
Em uma nota relacionada, a mesma postagem no blog também fornece classes de dispositivo de entrada para teclado e gamepad.
fonte
O código real para verificar um clique do mouse no XNA é algo assim;
fonte
Se o seu jogo for 3D, você pode implementar o picking, descrito aqui: http://create.msdn.com/en-US/education/catalog/sample/picking_triangle . Basicamente, isso cria um raio da câmera para o local em que o mouse clica (com uma pequena matriz desprotegida), então você verifica se algum dos seus objetos foi cruzado pelo raio.
Se o seu jogo for 2D, você poderá converter as coordenadas da janela em coordenadas do jogo com bastante facilidade. Em seguida, verifique se as coordenadas selecionadas estão dentro dos limites de qualquer um dos seus objetos.
fonte
A maneira mais simples de ver se o mouse é clicado é esta
agora no método de atualização, adicione este
espero que isso tenha ajudado
fonte