Wintermute Engine Forum

Czech forum => Technické fórum => Topic started by: Andrej (Blue Arc) on August 04, 2010, 04:54:55 PM

Title: Jednoduchý DialogBox
Post by: Andrej (Blue Arc) on August 04, 2010, 04:54:55 PM
Kedysi dávno sme tu viedli diskusiu o tom, ako vytvoriť jednoduché subtittles window. Príspevok o ktorom hovorím je tu: http://forum.dead-code.org/index.php?topic=4106.0

Riešenie nakoniec vyšlo ako funkcia, ktorá volá funkciu (viď príspevok). Keď som sa nad tým zamyslel, je to príliš neefektivne riešenie (byť stackom, nechcelo by sa mi to všetko kopírovať :) ), preto je tu asi to najjednoduhšie riešenie:

Vytvoriť si DialogBox window niekde vo zložke, napríklad: interface\dialogbox\dialogbox.window

V base.inc deklarovať globálnu premennú

global WinDialogBox;

V game.script napísať tento riadok:

// load the dialogbox window
WinDialogBox = Game.LoadWindow("interface\dialogbox\dialogbox.window");
WinDialogBox.Visible = false;

Teraz kdekoľvek vo hre, kde bude treba zobraziť dialogbox, stačí napísať:

WinDialogBox.Visible = true;
actor.Talk("Hello, how are you?");
actor.Talk("Do you like WME?");
actor.Talk("I have to go.");
WinDialogBox.Visible = false;

EDIT:

V prípade, že bude v nastaveniach vašej hry možnosť zapnúť/vypnúť  titulky, je vhodné upraviť kód takto:

WinDialogBox.Visible = Game.Subtitles; // read-only hodnota; buď je tru alebo false
actor.Talk("Hello, how are you?");
actor.Talk("Do you like WME?");
actor.Talk("I have to go.");
WinDialogBox.Visible = false;

Myslím, že je to oveľa lepšie, ako zbytočne preťažovať metódu..