Pessoal, gostaria de saber como posso imprimir um inteiro na tela utilizando a bliblioteca sdl, eu consegui imprimir strings porém preciso imprimir inteiro tbm. Possuo uma lista com os nomes e respectivas pontuações de jogadores e tenho que mostrar o nome do jogador e sua pontuação na tela.
Segue o código:
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
#include <SDL/SDL_ttf.h>
#include <stdio.h>
#include <stdlib.h>
#include "score.h"
#include <string.h>
#define FONTSIZE 18
/*
Para compilar gcc texto2.c -o texto2 -lSDL -lSDL_image -lSDL_ttf
*/
TTF_Font *fonte;
TTF_Font *carregarFonte(const char* arquivo, int tamanhoFonte){
TTF_Font *fonte = TTF_OpenFont(arquivo, tamanhoFonte);
if(!fonte)
printf("Problema no carregamento da fonte!! %s\n", TTF_GetError());
return fonte;
}
int main()
{
SDL_Init(SDL_INIT_VIDEO); // Inicializa o SDL e o sistema de vídeo
SDL_Init(SDL_INIT_TIMER);
IMG_Init(IMG_INIT_PNG);
TTF_Init();
if(TTF_Init() < 0){
//printf("TTF_Init> %s\n", TTF_GetError());
return 0;
}
atexit(TTF_Quit);
fonte = carregarFonte("/usr/share/fonts/truetype/freefont/FreeSerif.ttf",22);
// criando surface's
SDL_Surface *tela;
SDL_Surface *texto;
SDL_Color corTexto = {250, 250, 250};
char msg[] = "Nunca desista de vc !";
texto = TTF_RenderText_Solid(fonte,msg,corTexto);
SDL_Event event; // Para os eventos
tela = SDL_SetVideoMode(760, 600, 16, SDL_HWSURFACE|SDL_DOUBLEBUF); // Cria a janela
SDL_WM_SetCaption("'_'Texto na tela'_'",NULL); // escrever mensagem na barra da tela
// carregando imagens
// rects
// variaveis para o controle do icone no eixo y
SDL_BlitSurface(texto, NULL, tela, NULL);
int enter = 0;
int done = 0; // Variável de controle do loop
while (done == 0) // Loop principal
{
// Lê a fila de eventos e põe o evento mais antigo em "event"
while (SDL_PollEvent(&event)) // Loop de eventos
{
// Verifica se o evento mais antigo é do tipo SDL_QUIT
if (event.type == SDL_QUIT) // Se o usuário clicou para fechar a janela
done = 1; // Encerre o loop
// Verifica se o evento mais antigo é do tipo SDL_KEYDOWN
if (event.type == SDL_KEYDOWN) // Se o usuário apertou um botão do teclado
{
// Verifica qual tecla foi apertada
switch (event.key.keysym.sym)
{
case SDLK_RETURN: //SDLK_KP_ENTER
printf("Apertou enter \n");
enter = 1;
break;
case SDLK_UP:
break;
case SDLK_DOWN:
break;
default:
break;
}
}
if (event.type == SDL_KEYUP) // Se o usuário soltou um botão do teclado
{
// Verifica qual tecla foi solta
switch (event.key.keysym.sym)
{
case SDLK_RETURN: //SDLK_KP_ENTER
printf("soltou o enter \n");
enter = 0;
break;
case SDLK_UP:
break;
case SDLK_DOWN:
break;
default:
break;
}
}
}
//SDL_BlitSurface(fundomenu,NULL,tela,NULL); // Blita a imagem em dest
SDL_Delay(60); // Espera 60 milissegundos
SDL_Flip(tela);
}
SDL_Quit(); // Fecha o SDL
IMG_Quit();
return 0;
}