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 Font
Tä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.