Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: aaron966 en Agosto 31, 2011, 10:57:02 AM

Título: Mover objetos con el raton por una cuadricula (Solucionado por jucarave)
Publicado por: aaron966 en Agosto 31, 2011, 10:57:02 AM
Hola, tengo una duda con un juego que quiero crear, seria un juego de construcci?n de edificios, quiero que aparezca un cuadricula y mueva el raton de cuadro en cuadro, como en los juegos que hay por ah?

Saludos
Título: Re: Mover objetos con el raton por una cuadricula
Publicado por: Jucarave en Agosto 31, 2011, 05:41:28 PM
Hola, no estoy seguro si esto es lo que buscas, pero creo que te dara una idea.

Espero que entiendas c?digo, hay otros modos de hacerlo (puede que mas sencillo) pero no recuerdo XD

En el evento Draw de algun objeto que quieras que controle el mouse pones esto

[gml]//Posicionamos el objeto debajo del mouse
x = mouse_x;
y = mouse_y;

//Dibujamos una cuadricula
for (i=0;i<=room_width;i+=32){
    for (j=0;j<=room_height;j+=32){
        //Dibujamos lineas horizontales y verticales
        draw_line(i,j,room_width,j);
        draw_line(i,j,i,room_height);
    }
}

//Dibujamos el cuadro amarillo
draw_set_color(c_yellow);
draw_rectangle(32*floor(x/32),32*floor(y/32),32*floor(x/32)+32,32*floor(y/32)+32,0)
draw_set_color(c_black);[/gml]

Notas:
1. Ese objeto debe ser unicamente para el mouse
2. Los numeros '32' que encuentres los puedes reemplazar por el tama?o que quieres que sea la cuadricula
3. al final donde dice 'draw_set_color(c_yellow);' es el color del cuadro
Título: Re: Mover objetos con el raton por una cuadricula
Publicado por: aaron966 en Agosto 31, 2011, 10:14:17 PM
Muy bueno, me gusta per?, como puedo hacer que ese cuadro en vez de ser de color..... sea un sprite

PD:Ese es el unico inconveniente que tengo por lo otro es perfecto, muchas gracias,
Saludos
Título: Re: Mover objetos con el raton por una cuadricula
Publicado por: Jucarave en Agosto 31, 2011, 11:45:27 PM
Cita de: aaron966 en Agosto 31, 2011, 10:14:17 PM
Muy bueno, me gusta per?, como puedo hacer que ese cuadro en vez de ser de color..... sea un sprite

PD:Ese es el unico inconveniente que tengo por lo otro es perfecto, muchas gracias,
Saludos

Hola, mira en la parte final del codigo dice:

[gml]//Dibujamos el cuadro amarillo
draw_set_color(c_yellow);
draw_rectangle(32*floor(x/32),32*floor(y/32),32*floor(x/32)+32,32*floor(y/32)+32,0)
draw_set_color(c_black);[/gml]

Esto es lo que tienes que alterar. Si quieres dibujar un sprite, entonces usa el siguiente codigo


[gml]//Dibujamos el sprite
draw_sprite(sprite_index,image_index,32*floor(x/32),32*floor(y/32));[/gml]

NOTA:
1. En este caso debes cambiar "sprite_index" por el nombre del sprite que quieras dibujar ej: "spr_Carro" sin comillas
2. "image_index", es la sub imagen, si tu sprite tiene varias imagenes entonces aqui deberas decir cual quieres mostrar ej: "0" sin comillas
3. Los otros valores los puedes dejar asi, pero recuerda cambiar el "32" por el tama?o de tu rejilla


Saludos
Título: Re: Mover objetos con el raton por una cuadricula
Publicado por: aaron966 en Septiembre 01, 2011, 09:46:59 AM
Hola, siento molestaros tanto, per? tengo otro problemilla  :-[
he hecho que cuando aprietes el boton izquierdo del rat? se cree un objeto en ese cuadro de la cuadricula, per? no siempre se crea en ese cuadro, a veces se crea en el d los alrededore.
He probado a alinearlo en la cuadricula per? no funciona
Saludos
Título: Re: Mover objetos con el raton por una cuadricula
Publicado por: Jucarave en Septiembre 01, 2011, 05:23:01 PM
Cita de: aaron966 en Septiembre 01, 2011, 09:46:59 AM
Hola, siento molestaros tanto, per? tengo otro problemilla  :-[
he hecho que cuando aprietes el boton izquierdo del rat? se cree un objeto en ese cuadro de la cuadricula, per? no siempre se crea en ese cuadro, a veces se crea en el d los alrededore.
He probado a alinearlo en la cuadricula per? no funciona
Saludos

No problem, para eso estamos.

--

Si utilizas un codigo para crear el objeto parecido al siguiente:
[gml]instance_create(32*floor(x/32),32*floor(y/32),obj_Carro);[/gml]

entonces debes tener en cuenta que esto solo funciona si el sprite esta centrado en (0,0) es decir que su origen esta en la esquina superior izquierda del sprite.

Si por ejemplo tu sprite mide (32,32) y le tienes su origen en (16,16), entonces debes agregar esos (16,16) al codigo

[gml]instance_create(32*floor(x/32)+16,32*floor(y/32)+16,obj_Carro);[/gml]

NOTAS:
1. He agregado los "+16" de mi caso hipotetico, debes estar pendiente de esto.
2. Debes experimentar con estos valores hasta que descubras bien su funcionamiento y lo adecues a tus necesidades.
3. Esto va en el evento de clic izquierdo con el raton del mismo objeto que controla la cuadricula

--
saludos
Título: Re: Mover objetos con el raton por una cuadricula
Publicado por: aaron966 en Septiembre 01, 2011, 07:04:37 PM
Solucionado, muchas gracias por tu ayuda,

(http://createfunnylogo.com/logo/blazed/sos%20groso%20sabelo%20;).jpg)
Título: Re: Mover objetos con el raton por una cuadricula (Solucionado por jucarave)
Publicado por: MaanuRP en Septiembre 01, 2011, 09:19:59 PM
Me interesa mucho esto, podrias adjuntar el ejemplo que dejaste en tu otro post:

http://www.comunidadgm.org/index.php?topic=15612

Pero con esto incluido para que funcione bien?

Muchas gracias!