Название: Урок по созданию эффектных выпадающих инфо-сообщений Отправлено: site-pro от Сентябрь 01, 2012, 21:23:59 рабочий пример во вложении
создаём объект parent в событии Create пишем Код: showed=0 в событии Draw пишемКод: if (mouse_x>x && mouse_x<x+w && mouse_y>y && mouse_y<y+h )||(hit=1) теперь создадим объект control//проверели что мышка находиться над объектом или на него нажали { if showed=0 // если инфо ещё не показывалось { //обнуление временных переменных i=0 j=0 ii=0 jj=0 n=0 nn=0 xx=0 yy=0 ttext='' //получаем цвет для рамки инфо ch=color_get_hue(color) cs=color_get_saturation(color) cv=color_get_value(color) cl=make_color_hsv(ch,cs,cv+100) //инфо показываеться showed=1 } }else showed=0 в событии Draw пишем Код: with(all) if sprite_exists(sprite_index) draw_sprite(sprite_index,0,x,y)// перерисовали объектам их спрайты теперь создадим скрипт showhintwith(all) { if variable_local_exists('showed') showhint() //выведем на экран инфо } Код: if showed=1 // если инфо показываеться теперь создадим объект obj{ wid=string_width(text)+10 //ширена инфы hei=string_height(text)+10//высота инфы //проверка выхода за экран q=mouse_x+10+wid q1=mouse_y+hei if q<view_wview[1] xx=mouse_x+10 else xx=view_wview[1]-wid if q1<view_hview[1] yy=mouse_y else yy=view_hview[1]-hei if mouse_x<0 xx=0 if mouse_y<0 yy=0 if n=0 { if i<wid i+=5 if j<hei j+=5 if i>=wid && j>=hei { n=1 } } if n=1 { if ii<wid ii+=5 if jj<hei jj+=5 if ii=wid && jj=hei n=2 } if nn<string_length(text) { nn+=1 ttext+=string_char_at(text,nn) } //рисуем рамку draw_set_color(cl) draw_line_width(xx,yy,xx+i,yy,2) draw_line_width(xx,yy,xx,yy+j,2) draw_line_width(xx,yy+j,xx+ii,yy+j,2) draw_line_width(xx+i,yy,xx+i,yy+jj,2) //рисуем фон draw_set_color(color) draw_rectangle(xx+1,yy+1,xx+min((i+ii)div 2,i-1),yy+min((j+jj)div 2,j-1),0) //рисуем текст т. е. саму инфу draw_set_color(c_black) draw_text(xx+5,yy+5,ttext) } в событии Create пишем Код: //текст инфы для объекта в событии Left Pressed пишемtext='Name:block#color:yellow#you can move#this block.To move#this block you have #to click on him.' x_=0 y_=0 //цвет инфы color=c_blue hit=0 //ширина и высота объекта w=32 h=32 Код: x_=mouse_x-x в событии Global Left Button пишемy_=mouse_y-y hit=1 Код: if hit=1 в событии Global Left Released пишем{ x=mouse_x-x_ y=mouse_y-y_ } Код: hit=0 Название: Re: Урок по созданию эффектных выпадающих инфо-сообщений Отправлено: Tapacko от Ноябрь 20, 2012, 15:09:48 This is a simple example of how use my showhint_script
Грамматическая ошибка, английский храмает старичек =) А в целом скрипт очень таки хорош, но дизайном слабоват, для красивых игр нужно лучше. Название: Re: Урок по созданию эффектных выпадающих инфо-сообщений Отправлено: site-pro от Ноябрь 20, 2012, 17:51:29 да англ ... скрипт я написал так что бы он был более-мение обобщающий то как можно сделать... я хотел показать сторону кода,а не дизайна ..
Название: Re: Урок по созданию эффектных выпадающих инфо-сообщений Отправлено: Fur от Февраль 03, 2014, 15:54:57 Название: Re: Урок по созданию эффектных выпадающих инфо-сообщений Отправлено: Scurovoid от Февраль 03, 2014, 16:05:56 Я сделаю проще при помощи маленького скриптика который будет вести массив и "with", ну а эффектик симпатичный.
Название: Re: Урок по созданию эффектных выпадающих инфо-сообщений Отправлено: site-pro от Февраль 03, 2014, 17:15:25 обновление..
что изменил : в объекте control в событии draw Код: with (parent)showhint() в объекте parent в событии drawКод: if (mouse_x>x && mouse_x<x+w && mouse_y>y && mouse_y<y+h )||(hit=1){ и поменял скорость .. вроде теперь лучше..if showed=0{ i=0 j=0 ii=0 jj=0 n=0 nn=0xx=0 yy=0 ttext='' ch=color_get_hue(color) cs=color_get_saturation(color) cv=color_get_value(color) cl=make_color_hsv(ch,cs,cv+100) showed=1 } }else showed=0 draw_sprite(sprite_index,0,x,y) |