Hlavní navigace

Názory k článku
SDL: Hry nejen pro Linux (9)

Ivo Danihelka
Ivo Danihelka (neregistrovaný)
19. 4. 2005 0:15 Nový

obrys písma

celé vlákno
Při použití TrueType fontů mi vadilo, že jsou celé jednobarevné. Na strakatém pozadí se takové písmo špatně čte. Zkoumal jsem, jak obtáhnout kolem písma černý obrys a musel jsem si to nakonec napsat sám:

Třída Outline obtáhne tvary na daném obrázku:
http://fillets.sourceforge.net/spec/api/Outline_8cpp-source.html
Michal Turek
19. 4. 2005 8:16 Nový

Re: obrys písma

celé vlákno
Kdyby nebyla zásadní rychlost renderingu, tak by to šlo udělat i tak, že by se vykreslil text dvakrát. V prvním průchodu obrys (pozadí) a v druhém průchodu ten samý text o něco menší a vycentrovaný nad tím prvním. Stejným způsobem se mimochodem dělají i stíny textů (vzdálenější šedou barvou a posunut o jeden, dva pixely vpravo dolů).

Nemuselo by to být ani dvakrát pomalejší, kdyby se často renderované "konstantní" řetězce uložily do surface pro příští použití (negenerovaly pokaždé znovu).
Ivo Danihelka
Ivo Danihelka (neregistrovaný)
19. 4. 2005 10:00 Nový

Re: obrys písma

celé vlákno
To jsem zkoušel. Dva rederované texty o různé velikosti písma na sebe nepadnou. Čím delší text, tím více písmenka většího textu ujíždějí do strany.

Rychlost renderování pro mě zásadní není. Vygenerované titulky jsou uloženy v Surface a po určité době zmizí z obrazovky a uvolní se.
Michal Turek
19. 4. 2005 20:19 Nový

Re: obrys písma

celé vlákno
Hm, s tim ujížděním máš asi pravdu, to mě nenapadlo :(. Tak pak to udělat buď jenom tim stínem, nebo si vygenerovat znakovou sadu (jeden znak vycentrovat jde bez problémů) a skládat to po písmenkách...
Ivo Danihelka
Ivo Danihelka (neregistrovaný)
19. 4. 2005 20:33 Nový

Re: obrys písma

celé vlákno
Vyzkoušel jsem si teď, že když stejně velkým černým stínem uhnu na všechny čtyři rohy, tak to vypadá stejně jako obtáhnuté obrysem. Díky za inspiraci.

Jsou na to však potřebné čtyři "SDL_blity". Rychlostně to vyjde nastejno nebo možná trochu pomaleji než pomocí Outline. Takže zůstanu u obecnější Outline, ta funguje nejen na fonty.
ava
ava (neregistrovaný)
19. 4. 2005 12:24 Nový

bmf fonty

celé vlákno
Me taky vadi, ze jsou ttf fonty jednobarevne, tak jsem se poohledl po alternativach. Na strance http://bmf.wz.cz je hromada bitmapovych fontu ve formatu bmf, vykradenych z ruznych her, a je tam dokonce i editor (ktery ovsem funguje pouze pod win, nezkousel jsem ho). Napsal jsem jednoduchou ctecku techto fontu a sdl renderer, toto je ke stazeni na http://ava.wz.cz. Myslim, ze pro jednoduche aplikace nebo hry je to dobra alternativa, problem nastava pouze s diakritikou (maloktery z fontu na uvedene strance ma znaky s hacky a carkami). Dalsi alternativou muze byt knihovna SFont (viz google).
Ivo Danihelka
Ivo Danihelka (neregistrovaný)
19. 4. 2005 15:57 Nový

Re: bmf fonty

celé vlákno
Knihovna SFont není alternativou, pokud je potřeba pracovat s více než 256 znaky. Při překladu hry do více jazyků jsou UTF-8 fonty opravdu nenahraditelné.
YoSarin
YoSarin (neregistrovaný)
24. 5. 2006 8:39 Nový

Dev-C++

Tohle je trochu offtopic.
V Dev-C++ (v4.9.9.2) se mi nedaří v článku popsaným postupem vypsat správně text s českou interpunkcí. Problém je v tom, že Dev-C++ ukládá soubory v kódování win-1250 (myslím). Tím pádem je každý v něm zapsaný string ve win-1250 a pokus o jeho vytištění pomocí TTF_RenderUTF8_Solid() nebo TTF_RenderText_Solid() vede k výstupu s rozbitou interpunkcí.
Problém se vyřeší, když daný zdroják otevřu (pomocí třeba jEditu) ve win-1250 a uložím v utf-8. Pak ale při opětovném otevření v Dev-C++ jsou místo interpunkce nesmysly... :-(
Konkrétní dotaz zní - lze nějak Dev-C++ přinutit, aby otevíral a ukládal soubory v utf-8?
xms
xms (neregistrovaný)
6. 5. 2007 20:59 Nový

Error

celé vlákno
Ahoj, potreboval bych poradit, kdyz chci zkompilovat projekt pod VS .NET 2005? SDL.h a SDL_ttf.h normalne naincluduji, ale linker mi hazi takovehle chyby:

main.obj : error LNK2019: unresolved external symbol _TTF_Quit referenced in function _SDL_main
main.obj : error LNK2019: unresolved external symbol _TTF_Init referenced in function _SDL_main
headhunter
headhunter (neregistrovaný)
28. 2. 2008 20:23 Nový

Re: Error

celé vlákno
Ahoj,

asi mam podobny problem pod linuxom. Kdevelop mi vypise na vsetky funkcie kniznice SDL_ttf chybu: undefined reference to `nazov funkcie'

naincludovane to mam urcite v poriadku, pretoze v SDL_ttf je includovany SDL.h, ten som vyhodil z includu v hlavnom subore. Takze mi tam zostalo len SDL_ttf.h a ostatne funkcie SDL normalne funguju.

Prosim o odpoved. :)
Dik
headhunter
headhunter (neregistrovaný)
29. 2. 2008 7:25 Nový

Re: Error

celé vlákno
Takze uz som to vyriesil. Problem bol v tom ze som si presne neprecital ako treba zprovoznit.

"je nutné k parametrům gcc přidat volbu -lSDL_ttf"

:)
Zasílat nově přidané příspěvky e-mailem