Comunidad Game Maker

Ayuda => Desarrollo de Scripts => Mensaje iniciado por: Robin28 en Noviembre 04, 2009, 02:54:33 PM

Título: Dibujar poligono regular
Publicado por: Robin28 en Noviembre 04, 2009, 02:54:33 PM
Creador: Robin28
Descripcion: Dibuja un poligono regular con posicion, tama?o, lados, giro definidos.
Version:  :GM7:, no lo he probado en otras versiones ...

//draw_regular_polygon(x,y,size,angle,sides,outline)
//x,y=centro del poligono
//size=tama?o en pixeles del poligono
//angle=angulo de giro (en grados)
//sides=cantidad de lados del poligono
//outline=true para dibujar solo el contorno, false para pintar lo de adentro

var xx, yy, t, a, s, z, o,;

xx=argument0
yy=argument1
t =argument2
a =argument3
s =argument4
o =argument5

z=360/s

for (i=0;i<s;i+=1)
{
pointx[i]=xx+lengthdir_x(t/2,z*i+a)
pointy[i]=yy+lengthdir_y(t/2,z*i+a)
}

if o=true
{
for (i=0;i<s;i+=1)
{
if i<s-1
draw_line(pointx[i],pointy[i],pointx[i+1],pointy[i+1])
else
draw_line(pointx[i],pointy[i],pointx[0],pointy[0])
}
}

if o=false
{
for (i=0;i<s;i+=1)
{
if i<s-1
draw_triangle(xx,yy,pointx[i],pointy[i],pointx[i+1],pointy[i+1],false)
else
draw_triangle(xx,yy,pointx[i],pointy[i],pointx[0],pointy[0],false)
}
}


Usar en el evento DRAW...
Dejo adjunto el script para importar
Título: Re: Dibujar poligono regular
Publicado por: Fenris78 en Noviembre 04, 2009, 03:53:33 PM
Un script estupendo Robin. Viene de perlas para crear GUIs, piezas... sin necesidad de utilizar sprites. Tambien veo que lo has planteado de forma que sea realmente sencillo de utilizar, que es donde los scripts tienen toda su gracia.

Lo he estado probando en GM6 y funciona perfectamente. Dejo adjunto el ejemplo para quien lo necesite.





Título: Re: Dibujar poligono regular
Publicado por: Guacusio en Noviembre 05, 2009, 12:33:24 AM
Buen script, tiene la gracia de usar la versi?n lite de GM; tambi?n hab?a creado un script que dibuja pol?gonos regulares y sectores circulares (http://www.comunidadgm.org/index.php?topic=9364.msg43353#msg43353 (http://www.comunidadgm.org/index.php?topic=9364.msg43353#msg43353)), pero como usa primitivas s?lo aplica para la versi?n registrada.