Estoy desarrollando un juego de cartas en XNA.
¿Hay algún OnClick
evento en XNA para objetos?
Estoy tratando de hacer que las cartas se muevan cuando el jugador hace clic en ellas. En este proyecto, hay una clase de Sprite que roba la carta, pero estoy un poco atascado porque no sé cómo usar OnClick
eventos ni nada de eso.
if(MouseLeftPress()){ DoSomething(); }
, dondeMouseLeftPress()
hay un método que escribe para comparar los estados actuales y anteriores del mouse izquierdo. Encuentro esto más fácil que implementar eventos la mayor parte del tiempo.Tendrá que implementarlo usted mismo. Intente mirar el tutorial en: http://bluwiki.com/go/XNA_Tutorials/Mouse_Input
fuente
XNA solo le brinda lo suficiente para crear sus propias clases de entrada, y debe hacerlo teniendo en cuenta la utilidad que ofrecen.
Recomendaría la clase de entrada del mouse descrita en esta publicación de blog ( código fuente ). Detecta un botón presionado, retenido o liberado, y le permite obtener esa información ya sea a través de encuestas o eventos.
En una nota relacionada, la misma publicación de blog también proporciona clases de dispositivos de entrada de teclado y gamepad.
fuente
El código real para verificar un clic del mouse en XNA es algo así;
fuente
Si su juego es 3D, puede implementar la selección, que se describe aquí: http://create.msdn.com/en-US/education/catalog/sample/picking_triangle . Básicamente, esto crea un rayo desde la cámara hacia donde hace clic el mouse (con una pequeña matriz que no se proyecta allí), luego verifica si alguno de tus objetos se cruzó con el rayo.
Si su juego es 2D, debería poder traducir las coordenadas de la ventana a las coordenadas del juego con bastante facilidad. Luego verifique si las coordenadas seleccionadas están dentro de los límites de cualquiera de sus objetos.
fuente
La forma más sencilla de ver si se hace clic con el mouse es esta
ahora en el método de actualización agregue esto
espero que esto haya ayudado
fuente