Wintermute Engine Forum

Czech forum => Technické fórum => Topic started by: Hooke on May 17, 2006, 08:11:21 PM

Title: Posouvající se text
Post by: Hooke on May 17, 2006, 08:11:21 PM
Ahoj všem.

Chtěl bych se zeptat, jak bych mohl udělat toto:

Představme si rámeček ohraničující určitou oblast. Do toho rámečku chci umístit velké množství textu tak, aby mi tento text začal sám scrollovat od začátku do konce (známé například z Credits, případně jsem to viděl v kupě her :)).

Díky za každou radu.
Title: Re: Posouvající se text
Post by: Mnemonic on May 17, 2006, 08:43:41 PM
Skrolujici credits jsou k videni treba ve WME demu 3D (wme_demo_3d\data\scenes\Credits\scr\scene_init.script). Je to hodne vysoke okno, do ktereho se dynamicky nageneruji static controly s radky textu, a pak se to okno posunuje po obrazovce.
Title: Re: Posouvající se text
Post by: metamorphium on May 17, 2006, 08:50:06 PM
Přesto doporučuji tento efekt udělat jako video. Zatím jsem ještě ve WME neviděl plynulou verzi skriptovaného posuvu.
Title: Re: Posouvající se text
Post by: Mnemonic on May 17, 2006, 08:55:33 PM
Texty v grafice jsou eeeeevil.
Title: Re: Posouvající se text
Post by: Hooke on May 17, 2006, 10:48:02 PM
Já jsem to chtěl spíše použít pro dialogové okna (ve stylu fallout, kde se taky posouval po chvilce text), ale jak se na to tak koukám z předchozích příspěvků, tak tomu raději nebudu věnovat ani pozornost a svůj čas věnuji na něco jiného :).

Díky oběma za rady.
Title: Re: Posouvající se text
Post by: Mnemonic on May 18, 2006, 07:12:45 AM
Proc te predchozi prispevky tak odradily? Fallouti okenko by se takhle dalo udelat snadno, rekl bych. Navic to neskroluje plynuje, ale po radcich, takze tim pada i metova vyhrada :)
Title: Re: Posouvající se text
Post by: Hooke on May 18, 2006, 09:36:39 AM
Proc te predchozi prispevky tak odradily? Fallouti okenko by se takhle dalo udelat snadno, rekl bych. Navic to neskroluje plynuje, ale po radcich, takze tim pada i metova vyhrada :)

To s tím scrollováním jenom po řádcích mne vůbec nenapadlo, dobrá připomínka :).

Tak já to trošičku vysvětlím :). Představte si, že mám velké množství textu, které musím nějakým způsobem zobrazit ve static controlech (asi nejlepší způsob :)) - . Pro začátek tam ještě budu mít dvě tlačítka, který by mi text scrollovali nahoru a dolů (ať už po řádcích, či by rovnou změnili celý text). Můj hlavní problém, kterému čelím je zjišťování, kolik se mi toho textu vlastně do toho static controlu vejde. Nemůžu to mít víceméně "natvrdo", protože jakmile by se dělal překlad do jiného jazyku, tak bych narazil na to, že délka textu je jiná.

Přístup, který mne napadl jako řešení je tento:

Veškerý text sloučit do jednoho velkého řetezce. Na začátku si zjistit, kolik znaků se vejde na řádek ( (static.width-borders)/font.size) ), potom vybrat z toho textu daný počet znaků (zárove
Title: Re: Posouvající se text
Post by: Mnemonic on May 18, 2006, 11:22:44 AM
Napada. Static control ma metodu HeightToFit(). Takze proste nacpat vsechen text to static controlu, zavolat HeightToFit() a pak uz s nim jen posouvat v ramci nejakeho okna. To okno by muselo mit nastaveno ClipContents, aby text nevycuhoval ven. Static control uz automaticky zajisti formatovani do bloku.
Pokud by ten text byl ale opravdu hodne dlouhy, bylo by lepsi ho rozdelit do vic static controlu, napr. po odstavcich, jelikoz i kdyz ten static neni videt cely, engine ho musi cely vykreslit.
Title: Re: Posouvající se text
Post by: jnsfbi on May 23, 2006, 09:09:38 PM
Texty v grafice jsou eeeeevil.

Nahodou jsou fajn...hlavne pri neustalem predelavani do xy ruznych reci:-))