Tässä hiukan tuohon fonttiin liittyvää koodia:
GLvoid glBuildFont(GLvoid)
{
GLYPHMETRICSFLOAT gmf[256];
HFONT font;
base = glGenLists(256);
font = CreateFont(
0, //Height Of Font
0, //width Of Font
0, // Angle Of Escapement
0, // Orientation Angle
FW_BOLD, //Font weight
FALSE, //Kursvointi
FALSE, //Alleviivattu
FALSE, //Strikeout
ANSI_CHARSET,
OUT_TT_PRECIS,
CLIP_DEFAULT_PRECIS,
ANTIALIASED_QUALITY,
FF_DONTCARE|DEFAULT_PITCH,
"Comic Sans MS");
SelectObject(hDC,font);
wglUseFontOutlines( hDC,
0, //Aloitus merkki tai joku
255, //Kuinka monta display lists tehdään
base, //Ja sen aloitus
0.1f,
0.2f,
WGL_FONT_POLYGONS,
gmf);
}
GLvoid KillFont(GLvoid)
{
glDeleteLists(base, 256);
}
GLvoid glPrint(char *text) // Custom GL "Print" Routine
{
if (text == NULL) // If There's No Text
return; // Do Nothing
glPushAttrib(GL_LIST_BIT); // Pushes The Display List Bits
glListBase(base); // Sets The Base Character to 32
glCallLists(strlen(text), GL_UNSIGNED_BYTE, text); // Draws The Display List Text
glPopAttrib(); // Pops The Display List Bits
}En ole tajunnut miten fontin koko pienennetään yritin muuttaa noita lukuja mutta onnistuin muttamaan kuin paksuutta. Voisinhan tietysti laittaa sitä lähemmäs ja kauemmas mutta se nyt vaan ei käy...
rndprogy kirjoitti:
Voisinhan tietysti laittaa sitä lähemmäs ja kauemmas mutta se nyt vaan ei käy...
Miksei? Jos kerran olet kaikkia lukuja muuttanut etkä ole löytänyt mitään funktiota, jolla se hoidetaan, mikä on tuossa tavassa vikana?
No sitten pitäisi alkaa säätämään taustan kanssa, koska minulla on taustajoka tulee vastaan. Pitää alkaa säätämään tekstuurien ja polygonien kanssa. Eli tausta kauemmas tekstuuri lähemmäs, suurentaa sitä että peittää taas koko taustan etc. Aika monta hommaa pitäisi tehdä uusiksi.
font = CreateFont(
0, //Height Of Font
0, //width Of FontTämäpä outoa. Nehen mukaan noita lukuja muuttamalla fontin koon pitäisi muuttua, mutta kun kokeilin, niin se ei muuttunut. En keksinyt pikaisesti muuta tapaa kuin skaalata fonttia glScalef:llä sopivilla arvoilla.
Katso tämä: http://nehe.gamedev.net/data/lessons/lesson.asp?
Miten tuota glScalefia käytetään. Voin yrittää sillä. Yritin kyllä mutten saanut oikein mitään aikaan.
glScalef muuttaa x-, y- ja z-koordinaatiston suhteita, ja näin ollen myös objektin kokoa. Tässä muutamia esimerkkejä:
glScalef(1.f, 1.f, 1.f); // Koko ei muutu, akselien koot normaalissa suhteessa glScalef(3.f, 1.f, 1.f); // X-akseli venyy 3-kertaiseksi glScalef(0.5f, 0.5f, 0.5f) // Kutistetaan puoleen glScalef(-1.f, 1.f, 0.5f); // Peilataan x-akselin suhteen ja kutistetaan z-akselia
Ja niin edespäin. Googlesta löytyy lisäinfoa.
rndprogy kirjoitti:
No sitten pitäisi alkaa säätämään taustan kanssa, koska minulla on taustajoka tulee vastaan.
Entäs jos piirrät ensin taustan ja sitten tekstin siihen päälle ilman syvyyspuskurointia.
Jep siis se toimisi niin että en laittanut taustalle ollenkaan syvyyspuskuroinita.
Aihe on jo aika vanha, joten et voi enää vastata siihen.