Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: TheWood en Enero 12, 2019, 03:35:06 AM

Título: [SOLUCIONADO] Dibujar circulo con una perforacion en el medio
Publicado por: TheWood en Enero 12, 2019, 03:35:06 AM
Tengo la duda ya que las funciones de gml no traen nada sobre el dibujo de esa figura, solo la de dibujar un circulo relleno o solo el contorno. Si alguien conoce algún script o algo sería de mucha ayuda  :love: .
Título: Re:Dibujar circulo con una perforacion en el medio
Publicado por: Johann en Enero 12, 2019, 04:15:48 PM
Creo que se puede controlar el grosor del contorno, si se aumenta se obtiene el efecto que necesitas
Título: Re:Dibujar circulo con una perforacion en el medio
Publicado por: FridaFlowers en Enero 12, 2019, 05:04:06 PM
Aqui hay un script para dibujar donas, anillos, redondelas huecas, ruedas... como se le diga XD
Está hecho en base a surfaces:
[gml]
///scr_dibujar_dona(radio_in, radio_ex, x, y, col)
var rin = argument[0]
var rex = argument[1]
var xx = argument[2]
var yy = argument[3]
var color = argument[4]

var sup = surface_create(rex*2, rex*2)

surface_set_target(sup)
var cy = floor(surface_get_height(sup)/2)
var cx = floor(surface_get_height(sup)/2)
draw_circle_colour(cx, cy, rex, color, color, false)
draw_set_blend_mode(bm_subtract)
draw_circle_colour(cx, cy, rin, color, color, false)
draw_set_blend_mode(bm_normal)
surface_reset_target()
draw_surface(sup, xx-cx, yy-cy)

surface_free(sup)
[/gml]
La manera de usarlo es:
scr_dibujar_dona(radio_in, radio_ex, x, y, col)

radio_in = es el radio del circulo de adentro
radio_ex = es el radio del borde exterior

Cabe aclarar que el radio interior tiene que ser a lo sumo menor o igual, de otra manera, no se aprecia nada en pantalla.

El script no dibuja los bordes negro, pero se puede modificar lo poco para lograrlo, o en su defecto los dibujas fuera del script con las funciones convencionales.
Título: Re:Dibujar circulo con una perforacion en el medio
Publicado por: TheWood en Enero 12, 2019, 05:17:28 PM
gracias por las respuestas  :love: :love: . Investigue un rato y no hay una función "vanilla" en Gm 2 para aumentar el grosor de un circulo.

Entonces en la búsqueda encontré esto en la marketplace por si alguien le interesa:

- https://marketplace.yoyogames.com/assets/304/draw-circle-width
- https://marketplace.yoyogames.com/assets/1423/advanced-circle-drawing   

Gracias FridaFlowers por el script lo dejaré guardado por si acaso. Si puedes publicalo en la seccion de desarrollo de script de la comunidad.