Al pasar el mouse por encima de un objeto, quiero que en "otro" objeto aparte, se muestre un texto dado por un Switch acorde con las variables del primer objeto sobre el que se deposita el puntero del mouse.

Ejemplo:

Hombre_obj        - Si pongo el mouse encima de él, calculo unas variables , y en pos de ellas el objeto Cartel_obj pondrá  "Es un hombre".

Si fuera mujer_obj, al poner el mouse encima de este objeto, leo sus variables y en el Cartel_obj, aparece el texto   "Es una mujer".


¿Alguna idea?

podes usar distancia, algo como if point_distance(objAlgo.x, objAlgo.y, mouse_x,mouse_y) {codigos}
Tambien por coordenadas (este lo uso yo) if (mouse_x > objAlgo.x) and (mouse_x < objAlgo.x+sprite_width) and (mouse_y > objAlgo.y) and (mouse_y < objAlgo.y+sprite_height) then
{codigos} //Esta segunda opcion crea un "marco virtual" donde estaria el mouse sobre el otro object,

En el draw del objeto que va a dibujar eso tenés que poner
[gml]
c=collision_point(mouse_x,mouse_y,objeto,1,1)
if c<>-4
{
if genero="Hombre"
{
draw_text(mouse_x,mouse_y,"Es un hombre")
}
if genero="Mujer"
{
draw_text(mouse_x,mouse_y,"Es una mujer")
}
}
[/gml]
O en tu caso si usás dos objetos
[gml]
c=collision_point(mouse_x,mouse_y,Hombre_obj,1,1)
if c<>-4
{
draw_text(mouse_x,mouse_y,"Es un hombre")
}
c=collision_point(mouse_x,mouse_y,Mujer_obj,1,1)
if c<>-4
{
draw_text(mouse_x,mouse_y,"Es una mujer")
}
[/gml]




Cita de: Texic en Febrero 03, 2013, 10:43:21 PM
En el draw del objeto que va a dibujar eso tenés que poner
[gml]
c=collision_point(mouse_x,mouse_y,objeto,1,1)
if c<>-4
{
if genero="Hombre"
{
draw_text(mouse_x,mouse_y,"Es un hombre")
}
if genero="Mujer"
{
draw_text(mouse_x,mouse_y,"Es una mujer")
}
}
[/gml]
O en tu caso si usás dos objetos
[gml]
c=collision_point(mouse_x,mouse_y,Hombre_obj,1,1)
if c<>-4
{
draw_text(mouse_x,mouse_y,"Es un hombre")
}
c=collision_point(mouse_x,mouse_y,Mujer_obj,1,1)
if c<>-4
{
draw_text(mouse_x,mouse_y,"Es una mujer")
}
[/gml]

Texic, puedes por favor explicar el "-4"? Tengo entendido que el collision_point devuelve el id del objeto que colisiona, o un número negativo en caso de que no haya colisión.

Otra cosa, una corrección, las coordenadas del draw_text serían las del "cartel" donde francordoba quiere que aparezca el texto.

Saludos y gracias de antemano por responder mi duda.
Solo intento crear ideas, en forma de obras de arte interactivas.

Cita de: Klind en Febrero 04, 2013, 10:21:53 PM
Cita de: Texic en Febrero 03, 2013, 10:43:21 PM
En el draw del objeto que va a dibujar eso tenés que poner
[gml]
c=collision_point(mouse_x,mouse_y,objeto,1,1)
if c<>-4
{
if genero="Hombre"
{
draw_text(mouse_x,mouse_y,"Es un hombre")
}
if genero="Mujer"
{
draw_text(mouse_x,mouse_y,"Es una mujer")
}
}
[/gml]
O en tu caso si usás dos objetos
[gml]
c=collision_point(mouse_x,mouse_y,Hombre_obj,1,1)
if c<>-4
{
draw_text(mouse_x,mouse_y,"Es un hombre")
}
c=collision_point(mouse_x,mouse_y,Mujer_obj,1,1)
if c<>-4
{
draw_text(mouse_x,mouse_y,"Es una mujer")
}
[/gml]

Texic, puedes por favor explicar el "-4"? Tengo entendido que el collision_point devuelve el id del objeto que colisiona, o un número negativo en caso de que no haya colisión.

Otra cosa, una corrección, las coordenadas del draw_text serían las del "cartel" donde francordoba quiere que aparezca el texto.

Saludos y gracias de antemano por responder mi duda.
-4 es noone, osea ningún objeto o id, aunque para esto creo que también podría funcionar "<0" o instance_exists(), es más cuestión de gusto (creo) bueno creo que instance_exists() sería más lento.