"OOP Controls" by VisualProg30th Apr 2014 3:13
|
---|
Summary Controls can do OOP object for you DBP Project. It`s simple system use pattern "observer". Description You see - do-loop construction very simple, and control system do async render. For the time being i am work to documentation and specification. Code ` This code was downloaded from The Game Creators ` It is reproduced here with full permission ` http://www.thegamecreators.com set window on set display mode 640,480,32,1 Utils_Core_Init() Controls_Core_Init() local globalObserver as integer globalObserver=0 local lbl as integer lbl=Controls_CreateControl(CONTROLS_DBPLampGDI_LABEL,"lbl1") ` Ñоздаём label Controls_Observer_AddControl(globalObserver,lbl) ` добавлÑем компанент в обзервер Controls_Label_SetCaption(lbl,"- Controls ТеÑÑ‚ -") Controls_SetAutosize(lbl,0) ` Ñтанавливаем размеры ÑамоÑтоÑтельно Controls_SetEnable(lbl,0) ` выключаем "выделение" и "клик" Controls_SetBounds(lbl,2,2,96,8) ` уÑтанаваливаем размеры local slider as integer slider=Controls_CreateControl(CONTROLS_DBPLampGDI_SLIDER,"slider1") ` Ñоздаём slider Controls_Observer_AddControl(globalObserver,slider) ` добавлÑем компанент в обзервер Controls_Slider_SetMax(slider,100) Controls_Slider_SetMin(slider,0) Controls_Slider_SetValue(slider,50) Controls_Slider_SetCaption(slider,"Слайдер1") Controls_SetAutosize(slider,0) ` Ñтанавливаем размеры ÑамоÑтоÑтельно Controls_SetEnable(slider,1) ` включаем "выделение" и "клик" Controls_SetBounds(slider,2,12,30,16) ` уÑтанаваливаем размеры slider=Controls_CreateControl(CONTROLS_DBPLampGDI_SLIDER,"slider2") ` Ñоздаём slider Controls_Observer_AddControl(globalObserver,slider) ` добавлÑем компанент в обзервер Controls_Slider_SetMax(slider,200) Controls_Slider_SetMin(slider,0) Controls_Slider_SetValue(slider,100) Controls_Slider_SetCaption(slider,"Слайдер2") Controls_SetAutosize(slider,0) ` Ñтанавливаем размеры ÑамоÑтоÑтельно Controls_SetEnable(slider,1) ` включаем "выделение" и "клик" Controls_SetBounds(slider,2,30,40,16) ` уÑтанаваливаем размеры Controls_Slider_SetSegment(slider,20) ` уÑтанавливаем чиÑло видимых делений local button as integer button=Controls_CreateControl(CONTROLS_DBPLampGDI_BUTTON,"button") ` Ñоздаём button Controls_Observer_AddControl(globalObserver,button) ` добавлÑем компанент в обзервер load image "sprites\test_icon.png",8 ` загружаем картинку Controls_Button_SetImage(button,8) ` уÑтанавливаем картинку Controls_Button_SetCaption(button," ПрогреÑÑ++") Controls_SetAutosize(button,0) ` Ñтанавливаем размеры ÑамоÑтоÑтельно Controls_SetEnable(button,1) ` включаем "выделение" и "клик" Controls_SetBounds(button,65,30,30,10) ` уÑтанаваливаем размеры button=Controls_CreateControl(CONTROLS_DBPLampGDI_BUTTON,"button2") ` Ñоздаём button2 Controls_Observer_AddControl(globalObserver,button) ` добавлÑем компанент в обзервер load image "sprites\test_icon.png",7 ` загружаем картинку Controls_Button_SetImage(button,7) ` уÑтанавливаем картинку Controls_Button_SetCaption(button," ПрогреÑÑ--") Controls_SetAutosize(button,0) ` Ñтанавливаем размеры ÑамоÑтоÑтельно Controls_SetEnable(button,1) ` включаем "выделение" и "клик" Controls_SetBounds(button,65,41,30,10) ` уÑтанаваливаем размеры local txt as integer for y=0 to 2 for x=0 to 3 txt=Controls_CreateControl(CONTROLS_DBPLampGDI_TEXT,"text"+str$(x+(y+1)*3)) ` Ñоздаём text Controls_Observer_AddControl(globalObserver,txt) ` добавлÑем компанент в обзервер Controls_Text_SetText(txt,"ТекÑÑ‚") Controls_SetAutosize(txt,0) ` уÑтанавливаем размеры ÑамоÑтоÑтельно Controls_SetEnable(txt,1) ` включаем "выделение" и "клик" Controls_SetBounds(txt,2+14*x,58+10*y,12,8) ` уÑтанаваливаем размеры Controls_Text_SetMultiline(txt,0) ` делаем одноÑтрочное поле next next local progress as integer progress=Controls_CreateControl(CONTROLS_DBPLampGDI_PROGRESS,"progress") ` Ñоздаём progress Controls_Observer_AddControl(globalObserver,progress) ` добавлÑем компанент в обзервер Controls_Progress_SetMax(progress,100) Controls_Progress_SetMin(progress,0) Controls_Progress_SetValue(progress,50) Controls_Progress_SetCaption(progress,"ПрогреÑÑ") Controls_SetAutosize(progress,0) ` уÑтанавливаем размеры ÑамоÑтоÑтельно Controls_SetEnable(progress,1) ` включаем "выделение" и "клик" Controls_SetBounds(progress,2,90,96,8) ` уÑтанаваливаем размеры Controls_Progress_SetShowProgress(progress,1) ` отображать проценты и метку make object box 1,3,4,3 do position object 1, newxvalue(camera position x (),camera angle y (),5),newyvalue(camera position y (),camera angle x (),5), newzvalue(camera position z (),camera angle y (),5) rotate object 1,Controls_Slider_GetValue(slider-1),Controls_Slider_GetValue(slider),0 Select (Controls_Event_Click()) ` Ñобытие event click() case "button" Controls_Progress_SetValue(progress,Controls_Progress_GetValue(progress)+10) ` inc endcase case "button2" Controls_Progress_SetValue(progress,Controls_Progress_GetValue(progress)-10) ` dec endcase endselect Controls_Event_EndClick() ` Ñобытие endevent click() Controls_IO_SetCursor(mouseX(),mouseY(),mouseZ(),mouseClick()) ` манипулÑторы I/O Controls_Observer_Update(globalObserver) ` update set cursor 0,0 print "fps="+str$(screen fps()) loop |