Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





onMouseHover sobre un objeto Sprite

Iniciado por Lucha, 12 de Julio de 2006, 11:43:28 PM

« anterior - próximo »

Lucha

¡Hola a tod@s!

Estoy programando en C# + Managed DirectX.
Estoy utilizando para mostrar gráficos la clase Sprite, y su método Draw2D.
Sin embargo, esta clase no tiene el método "onMouseHover".
¿Cómo puedo cambiar una imagen "Sprite" cuando el ratón pase por encima?

Gracias a tod@s por vuestra atención, vuestro tiempo y vuestras respuestas.


Lucha

Si, sería una forma de hacerlo, pero quiero utilizar el método onMouseHover, porque me quitaría un montón de trabajo.

Si alguien conoce la forma de añadir un evento de este tipo a un objeto Sprite o parecido, le estaría eternamente agradecido.

Vicente

Si la clase sprite no tiene ese evento, lo tienes que hacer tú. Vamos, lo que te ha dicho Lex: cuando detectes que las coordenadas del ratón estén dentro del sprite, lanzas el evento. Pero te toca hacerlo a ti a manita si no viene de serie.

Un saludo,

Vicente

Lucha

¡Ah! Entiendo. Entonces tengo que programar el evento onMouseHover en mi clase Sprite. Si os digo la verdad, soy nuevo en C# (cosa que ya sabriais por mis preguntas) y no sabia que se podía crear los eventos como las funciones.

Gracias. Lo haré hoy mismo.

Vicente

Sip, se puede. Tienes que mirarte como van los delegados y los eventos, es un poco lioso pero tampoco demasiado.

Un saludo!

Vicente

Lucha

Sin embargo... no consigo meter el metodo onMouseHover en mi clase "Personaje". Me estoy leyendo todo lo que encuentro sobre eventos y delegados, pero nada. Lo suyo sería echarle un ojo a la definición de la clase System.Windows.Forms.Button, por ejemplo, que contiene un evento onMouseHover, para ver como lo hace.

¿Hay alguna manera de que pueda mirar dicho código?

Vicente

Tu tienes que tener un método que decida cuando se cumple la condición que dispara el evento (cuando el ratón está dentro del sprite). No se si DirectX te ayudará en eso, pero si no te ayudar pues tienes currela supongo.

Si se cumple la condición, lanzarás un evento MouseOver (con raise) y las funciones registradas al delegado asociado al evento se dispararán.

Si eres capaz de hacer un evento en general (por ejemplo una función que tenga un bucle y cuando ese bucle vale ciertos valores dispare el evento) y que al dispararse el evento se llame a las funciones asociadas, pues es lo mismo que con tu sprite.

Un saludo,

Vicente






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.