Piru vieköön kun ei Googlella löytynyt ainuttakaan selkeää esimerkkiä SDL ttf:n käytöstä, ei ainuttakaan joka ei olisi ollut mahdollisimman monimutkainen. -_- Ei edes SDL:n kotisivuilta... Joten, kuinkas sillä onnistuu saada se teksti näytölle, itse olen saanut aikaan tämän verran toimivasti:
TTF_Font * font; font=TTF_OpenFont("Fonts\\Font1.ttf", 12);
Ja tietysti olen inittänyt ttf:n... Mutta tuosta en ole osannut jatkaa...
GameDevissä on varsin helpon oloinen artikkeli aiheesta.
http://www.gamedev.net/reference/articles/
Loppupuolella oli esitelty kriittiset funktiot.
Ja muistetaan taas kerran tuhota nekin pinnat SDL_FreeSurface-funktiolla, eli ensin luot tekstipinnan muuttujaan noilla SDL_TTF:n funktioilla, sitten blittaat sen ruudulle ja lopuksi tuhoat.
No nyt sain toimimaan, mutta tuo pitäisi vielä muuttaa funktioksi. Muuten onnistuu, mutta en pysty laittamaan funktiota sellaiseksi että joka kerta voi valita tekstinkin mikä tulostetaan...
void Text(SDL_Color Blue, TTF_Font * font, int x, int y, string text); //Fonttifunktio void Text(SDL_Color Blue, TTF_Font * font, int x, int y, string text) { SDL_Surface * sText = TTF_RenderText_Solid(font, text, Blue); SDL_Rect rcDest = {x,y,0,0}; SDL_BlitSurface( sText,NULL, Screen,&rcDest ); SDL_Flip(Screen); SDL_FreeSurface(sText); }
Ilman tuota string juttua toimii, mutta ei se hyödytä jos aina sama teksti tulostuu...
Funktion text.c_str()
käyttö TTF_RenderText_Solid-kutsussa pelastaa =)
Metabolix kirjoitti:
Funktion
text.c_str()
käyttö TTF_RenderText_Solid-kutsussa pelastaa =)
Olipas tyhjentävästi selitetty. :)
Sitä oppii paremmin, kun joutuu ajattelemaan, mitä neuvot tarkoittavat ja kuinka niitä voi soveltaa ;) Tietenkin saa kysyä lisää, jos nämä kryptiset selitykset menevät hieman yli.
Oh, nyt minun täytyy onnitella itseäni, sain tuon homman toimimaan ilman tyhjentäviä selityksiä. =D
Hmm, tuolla ei näemmä voi tulostaa numeroita. Kuinkas siis voisi numeroita / numeroita sisältäviä muuttujia tulostaa, tai sitten muuttaa numeroita stringiksi..?
itoa:lla saa numeron charriksi.
Ei sotketa mukaan C:n vaarallisia ylivuotofunktioita, jos ei niitä tarvita. Vastahan minä tein tästä C++-esimerkin, ja C++:aa täällä useimmat taitavat käyttää. Keskustelua olisi löytynyt haulla. Aihe 11336. Ja yhdistämällä tämän edelliseen funktioosi saatkin jo melko yleispätevän tulostusfunktion.
Edit: Lähetinpä tuon nyt koodivinkiksi saman tien. https://www.ohjelmointiputka.net/koodivinkit/
Aihe on jo aika vanha, joten et voi enää vastata siihen.