سلام!
این جلسه قرار است نوشتن با کمک SDL1.2 را آموزش دهیم.
اول از همه باید کتاب خانه ی SDL_ttf.h را include کنید. در صورتی که این کتاب خانه را نصب نکرده اید، به این مطلب مراجعه کنید.
#include "SDL/SDL_ttf.h"
بعد از این که این کتاب خانه را include کردید، باید آن را initialize کنید. برای این کار از تابع زیر استفاده کنید؛
int TTF_Init ();
در صورتی که این عملیات با مشکل مواجه شود، خروجی این تابع برابر با -۱ خواهد بود.
حالا باید font مورد نظر خود را load کنید. برای این کار باید از تابع زیر استفاده کنید.
TTF_Font *font = TTF_OpenFont( const char *address, int size );
ورودی اول این تابع آدرس font مورد نظر و ورودی دوم این تابع اندازه ی این font است. خروجی آن هم در قالب یک اشاره گر از نوع TTF_Font است.
فرض کنید که فونتی که می خواهید از آن استفاده کنید، در همان فولدری است که برنامه ی شما قرار دارد و می خواهید که اندازه ی نوشته ی شما برابر با ۳۰ باشد. پس باید کدی مثل کد زیر بنویسید؛
TTF_Font *font = TTF_OpenFont( "Arial.ttf", 30 );
بعد از این که font مورد نظر خود را باز کردید، باید رنگ نوشته را مشخّص کنید. برای این کار رنگ مورد نظر خود را در یک SDL_Color بریزید؛
SDL_Color color = {255, 255, 255 };
حالا می توانیم از تابع زیر برای ایجاد نوشته استفاده کنیم؛
SDL_Surface *TTF_RenderText_Solid( TTF_Font*, const char*, SDL_Color );
به عنوان مثال:
SDL_Surface *message = TTF_RenderText_Solid( font, "tutorials.blog.ir", color );
حالا باید مانند معمول این SDL_Surface* را در پنجره ی اصلی برنامه کپی کنیم؛
SDL_BlitSurface( message, NULL, screen, NULL );
نوشته ی شما در پنجره کپی خواهد شود.
حالا برنامه تمام شده است و می خواهیم برنامه را ببندیم. قبل از این کار همانند SDL باید font باز شده و خود کتاب خانه ی TTF را ببندیم.
TTF_CloseFont( font );
TTF_Quit();
یاد گرفتن این مبحث نیازمند تمرین است. یکبار دیگر خودتان این برنامه را بنویسید.
موفق باشید!