TGC Codebase Backup



"OOP Controls" by VisualProg

30th 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.

added:
Label - CONTROLS_DBPLampGDI_LABEL v1.0.0
Button - CONTROLS_DBPLampGDI_BUTTON v1.0.0
Slider - CONTROLS_DBPLampGDI_SLIDER v1.0.0
Text - CONTROLS_DBPLampGDI_TEXT v1.0.0
Progress - CONTROLS_DBPLampGDI_PROGRESS v1.0.0

view in youtube - http://www.youtube.com/watch?v=5ambxJwYVac

visualprog@rambler.ru



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