- SDL ekrana yazı yazdırmak(basmak) için harici bir kütüphane kullanılıyor. Bunun adı da "SDL_ttf" kütüphanesi. İndirmek için bu adresi kullanabilirsiniz.
- Kullandığınız işletim sistemine göre indireceğiniz dosya farklı. Windows üzerinden anlatımı yapacağım için adres deki binary bölümünden "SDL_ttf-devel-2.0.9-VC8.zip" dosyasını indirdim.
- Klasörü zipten kurtardıktan sonra include dizinindeki "SDL_ttf.h" dosyasına SDL yi kurduğumuz ana dizindeki(bende C:\SDL) include klasörüne kopyalıyoruz. Aynı şekilde lib klasöründeki "SDL_ttf.lib" dosyasını ana dizindeki lib klasörüne atıyoruz .dll dosyalarını da ya oluşturduğumuz her proje klasöründe bulunduracağız yada windowsun system32 klasörüne kopyalayabiliriz.
- Şimdi sıra IDE ayarlarını yapmaya geldi. Ben her zamanki gibi Code::Blocks'a göre anlatacağım. Diğer IDE ler için yaklaşık olarak işlemleri aynıdır. Code::Blocks dan Compiler and debugger bölüme giriyoruz. Gelen pencereden Linker Settings sekmesine tıklıyoruz. Daha sonra Link Libraries bölümüne SDL nin ana dizindeki(bende C:\SDL) lib klasöründe bulunan "SDL_ttf.lib" dosyasını ekliyoruz.
Kurulum bitti sıra artık ortamımız kodumuzu yazmaya uygun hale geldi. Açıklamaları ile örnek uygulama aşağıda.
#include <SDL.h>
#include <SDL_ttf.h>
int main(int argc, char* args[])
{
if(SDL_Init(SDL_INIT_EVERYTHING)==-1)
return 1;
SDL_Surface* screen = SDL_SetVideoMode( 640, 480, 32, SDL_SWSURFACE );
if(!screen)
return 1;
//SDL_ttf dosyasını projemizde kullanabilir hale getiriyoruz
if(TTF_Init()==-1)
return 1;
/*Kullanacağımız font tipini ve yazı puntosunu belirledik.
Ben windows dizinindeki Fonts klasöründen Comic Sans MS tipinin
ttf dosyasını proje dizinime kopyaladım. Yazı büyüklüğünüde 30 punto yaptım*/
TTF_Font* font = TTF_OpenFont("comic.ttf",30);
if(!font)
return 1;
//Yazı rengini belirledim(kırmızı)
SDL_Color yaziRengi = {255,0,0};
/*/SDL de ekrana yazı yazdırmak demek ekrana resim basmak demektir.
Bu yüzden gireceğim yazıyı resim olarak renderledikten sonra
resmi tutması için surface tanımladım.*/
SDL_Surface* metin;
//Yazıyı renderleme işlemini gerçekleştirdim. Ve yazı artık resim haline geldi
metin=TTF_RenderText_Solid(font,"Merhaba Dunya",yaziRengi);
if(!metin)
return 1;
//Yazının ekrana basılacağı koordinatlar
//Ekranın ortası
SDL_Rect yaziKoord;
yaziKoord.x=(screen->w/2)-(metin->w/2);
yaziKoord.y=(screen->h/2)-(metin->h/2);
//Yazıyı yani resmi ekran bastım
SDL_BlitSurface(metin,0,screen,&yaziKoord);
SDL_Flip(screen);
bool dongu=true;
while(dongu)
{
SDL_Event event;
while (SDL_PollEvent(&event))
{
switch (event.type)
{
case SDL_QUIT:
dongu = false;
break;
case SDL_KEYDOWN:
{
if (event.key.keysym.sym == SDLK_ESCAPE)
dongu = false;
}
}
}
}
//fontu kapattım ve çıkış yaptım kaynakları geri iade ettim
TTF_CloseFont(font);
TTF_Quit();
SDL_FreeSurface(metin);
SDL_Quit();
return 0;
}
Kaynak kodu
buradan indirebilirsiniz.Kolay gelsin
Hiç yorum yok:
Yorum Gönder