Agosto 31, 2015, 11:26:19 PM Ultima modificación: Septiembre 12, 2015, 03:58:02 PM por serviciosadistancia
Hola amigos, necesito hacer una línea de puntos y no se me ocurre como, osea, tengo un sprite redondo y cuando pulso boton izquierdo del mouse se graba x e y, cuando suelto se graba xx e yy, y que se dibujen pegados todos esos puntos formando una línea, como para dibujar sin espacios en el medio, como debería hacer?


create:
dibujar = false;

step:
if mouse_check_pressed(mb_left)

     x1 = mouse_x;
     y1 = mouse_y;
}
if mouse_check_released(mb_left)

     x2 = mouse_x;
     y2 = mouse_y;
     dibujar = true;
}
draw:
if dibujar == true
{
     draw_line(x1,y1,x2,y2);
}


Asi a ojo....
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

Amigos gracias por la ayuda. El proyecto aun no lo abro porque no llegue a mi casa y el codigo esta genial pero necesito hacerlo creando sprites y no con draw porque quisiera darle unos efectos de brillo y demas que no se pueden lograr con draw. La idea es poner una alarma que vaya guardando puntos y necesito que los puntos se unan por una linea de sprites pero no estirados, sino que sean circulos pegados.

pues se me ocurre un objeto con move_towards_point con direccion al mouse release y mientras se mueve (if speed > 0) vaya creando instancias con el sprite ese...

o eso, o directamente ponerle en mouse pressed que cree las instancias, pero claro, si mueves rapido se crearan separadas...

Eres tu el del juego de los caminos solidos? asi como kirby canvas course? xD (bueniiisimo juego).
Si es asi.. pfff, parece dificilisimo lograr eso, suerte :P
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

Cita de: serviciosadistancia en Agosto 31, 2015, 11:26:19 PM
Hola amigos, necesito hacer una línea de puntos y no se me ocurre como, osea, tengo un sprite redondo y cuando pulso boton izquierdo del mouse se graba x e y, cuando suelto se graba xx e yy, y que se dibujen pegados todos esos puntos formando una línea, como para dibujar sin espacios en el medio, como debería hacer?
Cita de: serviciosadistancia en Septiembre 01, 2015, 03:12:42 AM
Amigos gracias por la ayuda. El proyecto aun no lo abro porque no llegue a mi casa y el codigo esta genial pero necesito hacerlo creando sprites y no con draw porque quisiera darle unos efectos de brillo y demas que no se pueden lograr con draw. La idea es poner una alarma que vaya guardando puntos y necesito que los puntos se unan por una linea de sprites pero no estirados, sino que sean circulos pegados.

No entiendo. Primero dices que quieres formar una línea en base a puntos que se tocan y luego dices que quieres unir los puntos con líneas formadas por un sprite. ¿Puedes poner un dibujo de cómo quieres que se vea?


Kostra, esa idea es buena pero el tema es que va muy lento, la posicion del mouse se aleja y la linea crece lentamente. Que gran juego ese!! jaja, sí, eso es lo que quiero lograr pero lamentablemente no hay una sola persona en el mundo que sepa hacerlo, no hay nada, ni tutoriales ni mucho menos ejemplos, así que no va a poder ser, incluso como ves lo quise pagar pero nadie siquiera se interesó.
Guacusio cuando dije lineas formadas por sprites quise decir lo mismo que antes, sprites alineados, osea los puntos que se tocan uno al lado del otro, no puede ser con draw porque necesito que tengan colision. La pregunta sería entonces si hay alguna manera de rellenar esos espacios vacíos que quedan entre objeto y objeto cuando ponemos instance create en la posicion del mouse y lo movemos a una velocidad alta.

Cita de: serviciosadistancia en Septiembre 01, 2015, 05:59:54 AM
Kostra, esa idea es buena pero el tema es que va muy lento, la posicion del mouse se aleja y la linea crece lentamente. Que gran juego ese!! jaja, sí, eso es lo que quiero lograr pero lamentablemente no hay una sola persona en el mundo que sepa hacerlo, no hay nada, ni tutoriales ni mucho menos ejemplos, así que no va a poder ser, incluso como ves lo quise pagar pero nadie siquiera se interesó.
Guacusio cuando dije lineas formadas por sprites quise decir lo mismo que antes, sprites alineados, osea los puntos que se tocan uno al lado del otro, no puede ser con draw porque necesito que tengan colision. La pregunta sería entonces si hay alguna manera de rellenar esos espacios vacíos que quedan entre objeto y objeto cuando ponemos instance create en la posicion del mouse y lo movemos a una velocidad alta.

Primer mensaje:
Citarque se dibujen pegados todos esos puntos formando una línea

Segundo mensaje:
Citarnecesito que los puntos se unan por una linea de sprites pero no estirados, sino que sean circulos pegados.

En tu primer mensaje se entiende esto:



y en el segundo, esto (aunque es confuso):



Tal vez en tu segundo mensaje te refieres a "puntos" y a "círculos" como 2 cosas distintas. Tengo claro que lo quieres hacer con sprites, mi pregunta es si quieres lo primero o lo segundo.


Exactamente como en la primera imagen que pusiste Guacusio, eso es lo que necesito

Aquí tienes una manera. En un objeto controlador del dibujo de puntos pon lo siguiente:

Evento Create:
crea_punto=false;
diam_punto=sprite_get_width(s_punto);


Evento Step:

var d,dir,n,i,j;
if crea_punto
    {
    d=point_distance(mx,my,mouse_x,mouse_y);
    if d>=diam_punto
        {//hay que crear puntos
        dir=degtorad(point_direction(mx,my,mouse_x,mouse_y));
        n=floor(d/diam_punto);//número de puntos a crear
        for(i=diam_punto;i<=diam_punto*n;i+=diam_punto)
            j=instance_create(mx+i*cos(dir),my-i*sin(dir),o_punto)
        mx=j.x;
        my=j.y;
        }
    }


Evento Global left pressed:
mx=mouse_x;
my=mouse_y;
crea_punto=true;
with o_punto
    instance_destroy();


Evento Global left released:
crea_punto=false;

donde o_punto es un objeto que representa puntos y s_punto su sprite. También dejo un editable con el mismo código.


Gracias a todos por la ayuda, Guacusio mil gracias por el ejemplo y perdón por el retraso pero es que no había visto tu respuesta, el ejemplo es exactamente lo que quería hacer. Doy el tema como RESUELTO. Saludoosss