سلام!

این جلسه قرار است نوشتن با کمک 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();

یاد گرفتن این مبحث نیازمند تمرین است. یکبار دیگر خودتان این برنامه را بنویسید.

موفق باشید!