Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: francordoba en Agosto 27, 2013, 10:50:29 PM

Título: Seleccionar por preferencia
Publicado por: francordoba en Agosto 27, 2013, 10:50:29 PM
Digamos que tengo una sartén, y encima de ella, se frien muchas cosas, huevos, carne, etc....

Imaginaos quiero seleccionar un trozo de carne, pero además, bajo ella hay un huevo, y bajo éste, la sarten. Y que todos estos objetos son seleccionables por el mouse.

¿Cómo podría poner una especie de preferencia de selección?
Título: Re:Seleccionar por preferencia
Publicado por: francordoba en Agosto 28, 2013, 09:41:11 PM
Deduzco que esto no iba aquí, ¿podrías borrarlo por favor? Así los demás miembros verán que no ha sido respondida .

Gracias.
Título: Re:Seleccionar por preferencia
Publicado por: petpan13 en Agosto 29, 2013, 03:33:49 PM
disculpa no me di cuenta
Título: Re:Seleccionar por preferencia
Publicado por: brunoxzx en Septiembre 02, 2013, 06:40:16 PM
Creas un objeto que sea un pariente para todos los objetos seleccionables, y a cada hijo de ese pariente le creas una variable prioridad, que entre mayor sea más fácil de seleccionar será.

Luego usas algo como esté script, puedes cambiar el collision point por otra cosa, ej:

[gml]priority_collision(mouse_x, mouse_y, par_seleccionable);[/gml]
[gml]var ide, list=ds_queue_create(), p, ID;

do  {
     ide=collision_point(argument0, argument1, argument2, true, true);
     with(ide){
           ds_queue_enqueue(list, id);
           x-=99999;
           y-=99999;
           if (p>prioridad) ID=id;
    }
}
while( ide>=0 );

while( !ds_queue_empty(list) ) with( ds_queue_dequeue(list) {
     x+=99999;
     y+=99999;
}
return(ID);[/gml]
Título: Re:Seleccionar por preferencia
Publicado por: francordoba en Septiembre 03, 2013, 02:11:46 AM
Gracias, el problema es que los parent no los puedo tocar ya, que solo haya una posibilidad de parent toca un poco la moral. No obstante me apunto este código por si me sirve para otra cosa.
Título: Re:Seleccionar por preferencia
Publicado por: brunoxzx en Septiembre 03, 2013, 06:45:56 AM
Cita de: francordoba en Septiembre 03, 2013, 02:11:46 AM
Gracias, el problema es que los parent no los puedo tocar ya, que solo haya una posibilidad de parent toca un poco la moral. No obstante me apunto este código por si me sirve para otra cosa.
Mmm eso suena más coomo a un error de diseño. En fin, para hacer que funcione solamente repite el primer do-while para cada uno de los objetos en los que quieres que funcione. Si algo anda mal avisas.