22#include < SDL_ttf.h>
33#include < iostream>
44
5+ TTF_Font* Sans;
6+
7+ SDL_Rect drawText (SDL_Renderer* renderer, char *text, int x, int y) {
8+ if (!Sans) {
9+ std::cout << " No font!" << std::endl;
10+ return SDL_Rect{ -1 , -1 , -1 , -1 };
11+ }
12+
13+ SDL_Color White = { 255 , 255 , 255 };
14+ SDL_Surface* surfaceMessage = TTF_RenderText_Blended (Sans, text, White);
15+ SDL_Texture* Message = SDL_CreateTextureFromSurface (renderer, surfaceMessage);
16+
17+ SDL_Rect Message_rect;
18+ Message_rect.x = x;
19+ Message_rect.y = y;
20+ Message_rect.w = surfaceMessage->w ;
21+ Message_rect.h = surfaceMessage->h ;
22+
23+ SDL_RenderCopy (renderer, Message, NULL , &Message_rect);
24+
25+ return Message_rect;
26+ }
27+
528int main (int argc, char * argv[])
629{
730 SDL_Init (SDL_INIT_VIDEO);
831 TTF_Init ();
32+
33+ Sans = TTF_OpenFont (" assets/Open_Sans/OpenSans-Regular.ttf" , 24 );
934
1035 SDL_Window* window = SDL_CreateWindow (
1136 " Battleship game" ,
@@ -19,22 +44,6 @@ int main(int argc, char* argv[])
1944 SDL_Renderer* renderer = SDL_CreateRenderer (window, -1 , SDL_RENDERER_SOFTWARE);
2045 SDL_SetRenderDrawColor (renderer, 0 , 0 , 0 , SDL_ALPHA_OPAQUE);
2146
22- TTF_Font* Sans = TTF_OpenFont (" assets/Open_Sans/OpenSans-Regular.ttf" , 24 );
23-
24- if (!Sans) {
25- std::cout << " No font!" << std::endl;
26- }
27-
28- SDL_Color White = { 255 , 255 , 255 };
29- SDL_Surface* surfaceMessage = TTF_RenderText_Solid (Sans, " put your text here" , White);
30- SDL_Texture* Message = SDL_CreateTextureFromSurface (renderer, surfaceMessage);
31-
32- SDL_Rect Message_rect;
33- Message_rect.x = 0 ;
34- Message_rect.y = 0 ;
35- Message_rect.w = 200 ;
36- Message_rect.h = 100 ;
37-
3847 while (true )
3948 {
4049 // Get the next event
@@ -48,7 +57,7 @@ int main(int argc, char* argv[])
4857 }
4958 }
5059 SDL_RenderClear (renderer);
51- SDL_RenderCopy (renderer, Message, NULL , &Message_rect );
60+ drawText (renderer, " Hello, World! " , 50 , 50 );
5261 SDL_RenderPresent (renderer);
5362 }
5463
0 commit comments