Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mensajes - totemalf

46
Ok, gracias, entendido.

Otra pregunta (me vais a odiar ya :P, la que estoy liando porque el mouse enter y el mouse leave no hacen su trabajo), he creado dos eventos nuevos con define triggers, tal como me explicaste Mgbu, los he llamado Mouse enter y Mouse leave también; el caso es que estos nuevos eventos solo aparecen en el proyecto en el que estoy trabajando, pero para otro proyecto debo crearlos de nuevo... ya se que es una tontería, pero ¿se puede hacer que aparezcan siempre, en cualquier proyecto?....

Y ya cambiar el mouse enter y el mouse leave del programa por los nuevos creados no se puede ni de broma, no? al no ser el programa open source ... la verdad que el desarrollador debería investigar este problema para futuras versiones.

De cualquier modo, yo creo que el programa debería contar con un evento llamado Mouse Over, al que añadirle acciones cuando el puntero está sobre el objeto, sin necesidad de usar el evento mouse leave, ya que cuando el cursor no está sobre el objeto vuelve al estado anterior. Wintermute Engine tenía esta función, por ejemplo, claro que en aventuras gráficas es imprescindible para iluminar los objetos del inventario. Creo que haré la sugerencia al desarrollador a ver cuantos insultos me lanza :P
47
Citarif collision_point(mouse_x,mouse_y,id,1,0)
{sprite_index=spr_payasoenter}
else
{sprite_index=spr_payaso}
De este modo funciona perfecto
Citarif position_meeting(mouse_x,mouse_y,self)
{sprite_index=spr_payasoenter}
else
{sprite_index=spr_payaso}
De este también...
La pregunta es... cual es mejor o más eficiente, o da igual?, el segundo parece más sencillo, ya que tiene dos parametros menos, por lo que imagino que será más eficiente, ¿o me equivoco?

saluti
48
Mmm, Huston, tenemos un problema.  :-\
Este método es perfecto cuando solo tenemos una instancia del payaso, pero al colocar dos surge un problema.
Cuando el ratón pasa por encima de uno de los payasos se iluminan ambos... ¿Qué podríamos hacer para corregir esto?


Por otro lado, he tenido alguna idea para tratar de hacer esto sin código de por medio, o con menos código...
se podría crear un objeto sin sprite llamado mouse y asignarle la ubicación del ratón en todo momento?
de este modo bastaría con agregar un evento colisión en cada objeto que queramos colisionar con el mouse, quitando la necesidad de añadir el código en cada objeto. No se si se puede hacer.... es solo una idea.

Un saludo y gracias!

49
Fantástica explicación, muchas gracias!!
50
Si, jeje, acababa de darme cuenta, porque el payaso salia primero remarcado, ya lo había cambiado y esta funcionando!!!, genial, muchas gracias.
Imagino que esto es un pequeño error en la función Mouse Leave de GM, no?

Mgbu, serías tan amable de explicarme un poco el funcionamiento de esa linea de código?, funciona perfecto, pero me gustaría entenderlo, de momento he visto poco de Game Maker, y casi todo ha sido de la interfaz, eventos, acciones y demás, pero de código casi nada.

Mmm, es posible crear eventos nuevos en Game Maker? o sea, crear un botón en eventos con ese código y llamarlo Mouseover, por ejemplo ¿?
51
Estupendo, gracias a todos por las respuestas, voy a probarlo ahora a ver que tal.
Pido disculpas por la "ilegalidad" del post, ya he leido las normas y trataré de respetarlas.

Un saludo, y lo dicho: Gracias!
52
Buenas, antes de nada me presento. Mi nombre es Asensio, y estoy comenzando con el aprendiza de Game Maker. Tengo la versión 8.1 Lite.

He estado realizando el tutorial 1 de yoyogames, el de "tu primer juego", atrapa al payaso. Lo he llevado a cabo sin ningún problema, pero he tratado de agregarle alguna cosita más y bueno ya se me ha complicado el tema.

Mi intención es que cuando el cursor pase sobre el payaso, el borde del mismo se ilumine de color amarillo, para indicar al jugador que si en ese preciso milisegundo hace click, se van a sumar los puntoss. Para conseguir esto he creado un nuevo sprite con el borde ya coloreado de amarillo, y he creado en el objeto payaso los eventos mouse enter y mouse leave, en mouse enter he colocado la accion de cambiar sprite por spr_payasoenter y en mouse leave he colocado cambiar sprite por el que había, spr_payaso.
En teoria esto funciona perfectamente, lo he probado con objetos estaticos y va perfecto, cuando pasa el puntero por encima se ilumina, cuano se quita vuelve al estado normal, pero con el payaso el resultado es desastroso.
Con el payaso, a veces tarda un rato en cambiar el sprite, y otras veces se queda "pillado" mostrando todo el rato el segundo sprite.... funciona, más o menos... pero mal.

No se si estoy haciendo algo mal o si hay otra forma de tratar de conseguir este efecto con objetos móviles... ya digo que con estáticos va perfect. Estaría muy agradecido por cualquier sugerencia que podáis darme.

Desde ya, muchas gracias.
Asensio.