Hola a todos,
alguien sabe como hacer que, clicando en la pantalla, se dibujen lineas por donde pasa el mouse? a modo pincel.
No se si me explico bien, pero si alguien me puede ayudar se lo agradeceria mucho.
Un saludo por adelantado
y muchas gracias ;D
Una de mis pruebas ha sido esta:
Global left button
If (variable tinta) is large than 1
Create (un punto) in mouse_x mouse_y
Else
Exit event
Me funciona pero no queda como una línea, solo aparecen unos puntos...
Aver si a alguien se le ocurre algo mejor que a mi :P
Me parece que la mejor forma es usar surfaces (http://www.comunidadgm.org/manual_GM/Dibujando_superficies.htm), son como lienzos en donde podes dibujar, son un poco dificiles de usar pero es la opcion mas apropiada, ya que si usas objetos vas a trabar el juego si dibujas mucho. Eso se haría dibujando circulos en la surface, a lo mejos si el mouse se mueve muy rapido vas a seguir viendo circulos en vez de lineas. Lo que se me ocurre es que dibujes lineas que vayan desde la posición del mouse hasta la posicion anterior del mouse, no se si se entiende
Muchas Gracias por responder, Mgbu
Ya miraré el tema de las surfaces. Tambien lo habia pensado hacer, lo del mouse, pero no se como.... si me lo puedes explicar me harias un gran favor, XD
Cita de: Mgbu en Mayo 29, 2013, 09:47:39 PM
Me parece que la mejor forma es usar surfaces (http://www.comunidadgm.org/manual_GM/Dibujando_superficies.htm), son como lienzos en donde podes dibujar, son un poco dificiles de usar pero es la opcion mas apropiada, ya que si usas objetos vas a trabar el juego si dibujas mucho. Eso se haría dibujando circulos en la surface, a lo mejos si el mouse se mueve muy rapido vas a seguir viendo circulos en vez de lineas. Lo que se me ocurre es que dibujes lineas que vayan desde la posición del mouse hasta la posicion anterior del mouse, no se si se entiende
Como dice Mgbu, te hice un editable con surfaces, bastante sencillo, en el cual puedes ademas cambiar el tamaño de la broca y el color. Pero bueno, el único fallo es lo que dice Mgbu, si mueves muy rápido el cursor se dibujan los circulos muy separados. XD
Creo que se haria con algo asi en el step:
xmouseanterior = xmouse
xmouse = mouse_x
Para que no de error en el create agregarìa
xmouseanterior = mouse_x
xmouse = mouse_x
E igual con la coordenada "y" del mouse. En el create habría que guardar la coordenada en una variable (xmouseanterior), en el proximo step la coordenada del step anterior (xmouseanterior) serìa la guardada previamente, y la nueva coordenada (xmouse) serìa la verdadera del mouse (mouse_x)
Cita de: Silver_light en Mayo 30, 2013, 01:52:03 AM
Como dice Mgbu, te hice un editable con surfaces, bastante sencillo, en el cual puedes ademas cambiar el tamaño de la broca y el color. Pero bueno, el único fallo es lo que dice Mgbu, si mueves muy rápido el cursor se dibujan los circulos muy separados. XD
Parece que si, lo pude hacer correr hasta a 1000fps pero igual se dibuja mal ¿Còmo hacen los otros programas? ¿Usan lineas? A lo mejor hacen curvas suavizadas a partir de los puntos, no se
Cita de: Mgbu en Mayo 30, 2013, 01:56:30 AM
Parece que si, lo pude hacer correr hasta a 1000fps pero igual se dibuja mal ¿Còmo hacen los otros programas? ¿Usan lineas? A lo mejor hacen curvas suavizadas a partir de los puntos, no se
Perdón pero no entiendo a que te refieres con eso de que se dibujan mal, ¿podrías explicarlo?.
Muchas gracias Silver_light y Mgbu,
una última pregunta: si ago lo de las línias, ¿Puedo cambiar las propiedades de la línia? Como hacer la línia mas ancha o ponerle unos sprites por encima, unas luces o effectos a la línia.
Cita de: brunoxzx en Mayo 30, 2013, 04:51:16 AM
Cita de: Mgbu en Mayo 30, 2013, 01:56:30 AM
Parece que si, lo pude hacer correr hasta a 1000fps pero igual se dibuja mal ¿Còmo hacen los otros programas? ¿Usan lineas? A lo mejor hacen curvas suavizadas a partir de los puntos, no se
Perdón pero no entiendo a que te refieres con eso de que se dibujan mal, ¿podrías explicarlo?.
Me refiero a que se dibujan lineas de puntos, pero me sorprende de que a tantos fps siga pasando
Cita de: Nakatu en Mayo 30, 2013, 11:13:21 AM
Muchas gracias Silver_light y Mgbu,
una última pregunta: si ago lo de las línias, ¿Puedo cambiar las propiedades de la línia? Como hacer la línia mas ancha o ponerle unos sprites por encima, unas luces o effectos a la línia.
La forma de dibujar una surface es identica a la de dibujar la pantalla directamente, para hacer el ancho deberias usar
draw_line_width, podes hacerla de distintos colores, y para ponerle sprites vas a tener que hacer un poco de matematica, no se, porque vas a tener que dibujar sprite por sprite
Muchas Gracias ^^
Cita de: Mgbu en Mayo 30, 2013, 07:08:02 PM
Me refiero a que se dibujan lineas de puntos, pero me sorprende de que a tantos fps siga pasando
Ah perdón, no se en que estaba pensando. Sigue sucediendo por que las frecuencias de re-dibujado del monitor no pasan de las 100 por segundo (por lo que tener un juego corriendo a más de esa velocidad es inútil). Debo suponer que otros programas usan lineas suavizadas intentando deducir por donde paso el mouse, por suerte los paths de gm tienen curvas bezier pre-programadas y no es necesario hacer un scrpit para dibujarlas, dejo un ejemplo adjunto.
Nota: El script no está optimizado (eso se los dejo a ustedes) y hacer lineas muy grandes puede bajar los fps hasta que se suelte el click.