Немного допилил визуал часов, сделал более плавную секундную стрелку а так же добавил на фон движение шестеренок как в подобии механических часах.
Большую часть статики перетащил в сурфейсы, от этого заметно увеличилась производительность приложения, т.к. циферблат отчасти рисуется вручную(цифры шкала).
surface = surface_create(sprite_width, sprite_height);
surface_set_target(surface);
draw_clear_alpha(c_black, 0);
//draw_self();
draw_sprite_ext(sprite_index, image_index, w2, h2, image_xscale, image_yscale, image_angle, image_blend, image_alpha);
//-------------------------------------------------
//рисуем цифиря
draw_set_font(font_big);
if _r<150 then draw_set_font(font_small);
//-------------------------------------------------
draw_set_halign(fa_center);
draw_set_valign(fa_center);
draw_set_color(c_white);
for(i=1;i<=12;i++)
//draw_text(w2+lengthdir_x(_lenhor-_r/80, 90-(30*i)) - 0,h2 + lengthdir_y(_lenhor-_r/80, 90-(30*i)) - 0, string(i) );
draw_text(w2+lengthdir_x(_lenhor+5, 90-(30*i)) - 0,h2 + lengthdir_y(_lenhor+5, 90-(30*i)) + 5, string(i) );
//-------------------------------------------------
//-------------------------------------------------
//рисуем шкалу секундную
draw_set_color(c_fuchsia);
draw_set_color(#58c7ee);
for(i=0;i<=59;i++)
{
/*draw_line(x+lengthdir_x(_lenmit+2, i*6), y + lengthdir_y(_lenmit+2, i*6) -7,
x+lengthdir_x(_lenmit-2, i*6), y + lengthdir_y(_lenmit-2, i*6) -7);*/
draw_circle(w2+lengthdir_x(_lensec,90- i*6), h2 + lengthdir_y(_lensec, 90-i*6) , 2, false);
}
//-------------------------------------------------
//рисуем шкалу минутно
for(i=0;i<=59;i+=5)
{
/*draw_line(x+lengthdir_x(_lenmit+2, i*6), y + lengthdir_y(_lenmit+2, i*6) -7,
x+lengthdir_x(_lenmit-2, i*6), y + lengthdir_y(_lenmit-2, i*6) -7);*/
draw_circle(w2+lengthdir_x(_lensec,90- i*6), h2 + lengthdir_y(_lensec, 90-i*6) , 4, false);
}
surface_reset_target();
Секундную стрелку лерпую
sec = lerp(sec, current_second, 0.1);
Шестерни вращаю:
//Step event
ang = 6*current_second;
//Draw event
image_angle = -ang; //+ или - в зависимости куда шестерню крутим
draw_self();
Маятник вертится кодом:
//Step event
ang = 90*cos(get_timer()/1000000*2*pi);
//Draw event
image_angle = ang;
draw_self();
всё просто.