Вот несколько примеров рисования фигур линиями, может кому пригодятся.
Весь код размещается в событии Draw объекта.
Для корректной работы некоторых примеров необходимо включить опцию "Обращаться с неиницализированными переменными как с 0", которая находится в глобальных игровых настройках на вкладке "Ошибки". 1. Звездочка
Code
{
for (i=0; i<=300; i+=5)
{
draw_line(x,y+300-i,x+i,y);
draw_line(x,y+300-i,x-i,y);
draw_line(x,y-300+i,x+i,y);
draw_line(x,y-300+i,x-i,y);
}
}
2. Анимированная лента
Code
{
for (i=0; i<pi*2; i+=0.05)
{
if (i<2)draw_line (x+i*100, y+sin(dt+i)*50*i, x+(i+0.3)*100, y-cos(dt+i+0.3)*50*i);
else if (2*pi-i<2)draw_line (x+i*100, y+sin(dt+i)*50*(2*pi-i), x+(i+0.3)*100, y-cos(dt+i+0.3)*50*(2*pi-i));
else draw_line (x+i*100, y+sin(dt+i)*100, x+(i+0.3)*100, y-cos(dt+i+0.3)*100);
}
dt+=0.1;
if (dt>pi*2) dt-=pi*2;
}
3. Вращающаяся звезда
Code
{
for (i=0; i<2*pi; i+=0.1)
{
l1=100+20*sin((i+dt)*6);
l2=100+20*sin((i+0.1+dt)*6);
c1=cos(i); c2=cos(i+0.1);
s1=sin(i); s2=sin(i+0.1);
for (j=0.99; j>0.88; j-=0.005)
{
draw_line (x+l1*c1, y+l1*s1, x+l2*c2, y+l2*s2);
l2*=j; l1*=j;
}
}
dt+=0.02;
if (dt>2*pi)dt-=2*pi;
}
4. Овал с передвигающимся центром
Code
{
for (i=0; i<2*pi; i+=0.1)
{
l1=100;
l2=100;
c1=cos(i); c2=cos(i+0.1);
s1=sin(i); s2=sin(i+0.1);
x1=x; y1=y; cdt=cos(dt); sdt=sin(dt);
for (j=0.99; j>0.88; j-=0.005)
{
draw_line (x1+l1*1.5*c1, y1+l1*s1, x1+l2*1.5*c2, y1+l2*s2);
l2*=j; l1*=j;
x1-=3*1.5*cdt;
y1-=3*sdt;
}
}
dt+=0.02;
if (dt>2*pi)dt-=2*pi;
}
5. Вообще затрудняюсь сказать что это, надо водить мышкой
Code
{
for (i=0; i<2*pi; i+=0.2)
{
draw_line(x+50*cos(i),y+50*sin(i),x+50*cos(i+0.2),y+50*sin(i+0.2));
}
a=arctan2(y-mouse_y, x-mouse_x);
len=point_distance(x,y,mouse_x,mouse_y);
dr=(len-50)/10;
r=50+dr;
for (i=10; i>0; i-=1)
{
a2=a-0.2*i;
for (j=i*2; j>0; j-=1)
{
draw_line(x-r*cos(a2),y-r*sin(a2),x-r*cos(a2+0.2),y-r*sin(a2+0.2));
a2+=0.2;
}
r+=dr;
}
}
---------------
чуть не забыл - примеры для Game Maker 7 Pro