MSHost.cz
https://forum.mshost.cz:443/

GUI - Tlacitka , Okna ...
https://forum.mshost.cz:443/viewtopic.php?f=18&t=9095
Page 1 of 1

Author:  FirstMn [ Sun 07. Apr 2013 17:57:14 ]
Post subject:  GUI - Tlacitka , Okna ...

GUI

Úvod
Ke GUI bude nejlepsi se s tim moc nepiplat , a pouzit guieditor , ve kterym uz vytvarite gui a dokonce i DX primo ve hre, a okamzite vidite co jste vytvorili.
>>/ Zatimco kdyz GUI delate v notepadu ,(proste rucne) tak nevidite moc co a jak jste kde udelali.
guieditor je ke stazeni zde.

GUI je to nejlehci co muzete delat, nic tezkeho ani neni prirazovat funkce k nim.
Nepouzivate addCommandHandler, ale addEventHandler.
syntax-priklad je :
addEventHandler("onClientGUIClick", GUI-element, funkce)

priklad dame ze pri kliknuti na tlacitko se neco stane :
addEventHandler("onClientGUIClick", button_close, zavrit)

Eventy GUI jsou zde : events
Funkce GUI jsou zde : functions

Pokud chcete zobrazit GUI , jednoduse vypiste kod do funkce , a pridejte tam showCursor, ktery vam
zobrazi kurzor (pokud napr. mate tlacitka na zavreni)
Pri "zavirani" okna, GUI, pouzivejte destroyElement() , nikoli setElementAlpha apod..Nezapomente na showCursor na defaultní hodnotu (false), jinak se vám zavre okno , ale kurzor mysi vam zustane !

!!! V GUI nesmíte psát HÁČKY a ČÁRKY apod.!(Mezery ano) !!!

Vyuziti GUI v praxi
GUI vyuzijete hodne napr. pokud chcete psat delsi texty , nebo proste informace , ktere by se do chatu vypsat nehodily, nebo pokud chcete udělat Login Panel , nebo Panel pro nakupování ...
A GUI není jen náhrada chatu !

Zmena textu
Urcite jste nekdy chteli zmenit text v GUI , ale napr. po kliknuti na tlacitko.
Pouzijte guiSetText , kde staci napsat pouze gui-element, a text v " ".
syntax : guiSetText(gui-element,"text")
priklad : guiSetText(tlacitko,"Novej text")
Vyuziti v praxi
Zmena jazyku pri kliknuti na tlacitko - asi typicke vyuziti, napisete v Anglictine , ale muzete cist i v Cestine.
"Dalsi strana" - taky se muze vyuzit , kliknete na tlacitko a text se zmeni , jako "dalsi stranka".

Images / Obrázky
Jiste , obrazky. Taky je muzete dat do svych oken , jako vyzdobu nebo jako okno samotne.
-Pouzivejte obrazky s formatem .png !
-Nezapomente ze guieditor a vas script jsou rozdilne veci !
-> Zapsat soubor / obrazek do meta.xml !

Příklad GUI
Jako příklad uvedu muj help panel , ktery samozrejmne sem nedam cely :D .
Muzete si jej i vyzkouset , staci vytvorit soubor .lua , do nej to zkopirovat, potom vytvorit / "ukrast" odnekud meta.xml, kde bude type="script" a <script src="" bude type="client" . Okno zobrazite prikazem /uhelp.
Code:
function showHelpWindow() -- Funkce
showCursor(true) -- Zobrazi kurzor mysi
showChat(false) -- Skryje chat
fadeCamera(false) -- Zatemni kameru
setElementFrozen(source, true) -- Zmrazi hrace
setTimer(helpGUI,1000,1) -- 1 sekunda do zobrazeni GUI
end -- Konec funkce
addCommandHandler("uhelp", showHelpWindow) -- Prida prikaz /uhelp


function helpGUI()
helpW = guiCreateWindow(121, 74, 590, 438, "", false) -- Vytvori okno
guiWindowSetSizable(helpW, false) -- Nastavi okno neupravovatelne(velikost)
guiSetAlpha(helpW, 0.95) -- Nastavi viditelnost okna => Alpha 0.95(95%)

btn_Close = guiCreateButton(472, 389, 102, 35, "Close", false, helpW) -- Vytvori tlacitko Close
text_Help = guiCreateLabel(258, 21, 120, 56, "Help", false, helpW) -- Vytvori text Help
TabPanel = guiCreateTabPanel(14, 69, 560, 310, false, helpW) -- Vytvori Tab panel

Tab_1_Main = guiCreateTab("Main", TabPanel) -- Vytvori tab 1

text_Main = guiCreateLabel(15, 20, 535, 191, "Bla bla bla, tento help panel je od FirstMn a slouzi jen jako priklad ! Opravdovy help panel najdete jen na mem serveru End Of the Word ! muhaha", false, Tab_1_Main) -- Vytvori a napise text
end -- Konec funkce
addEventHandler("onClientGUIClick", btn_Close, hideHelpWindow) -- Prida event pro tlacitko Close


function hideHelpWindow()
showCursor(false) -- Skryje kurzor
showChat(true) -- Zobrazi chat
setElementFrozen(source,false) -- Odfreezne(odmrazi) hrace
fadeCamera(true) -- Odcerna obrazovku(zpet do normalu)
destroyElement(helpW) -- "Znici" element helpW => "znici"/odstrani okno z obrazovky
removeEventHandler("onClientGUIClick", btn_Close, hideHelpWindow) -- odstrani event
end -- Konec funkce

Vzor - jak vypadá GUI -> Prvni je help panel ,druhy missions panel.
Spoiler: show
Image


Závěr
GUI je opravdu lehké, stačí myslet na pár pravidel, a hravě umíte GUI.

Page 1 of 1 All times are UTC + 1 hour [ DST ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/