Fandom

Scratchpad

Bmp-fonts.c

216,082pages on
this wiki
Add New Page
Discuss this page0 Share

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Uint32 GetPixel()

Devuelve el color que posee un pixel, el cual es indicado por las coordenadas X,Y de una imagen.


struct BMF BMF_load(char *path);

Carga una imagen la cual debe contenter las letras de la A la Z, estando estas separadas entre si por un pixel azul. Al cargar la imagen, mediante el pixel azul, se guarda en una estructura la posición x donde comienza y ancho que tiene cada letra.

void BMF_Write(struct BMF bmp_font,char *c, int x, int y)

Lee una cadena de carecteres, y dibuja la letra correspondiente a cada carácter.

Sus argumentos son:

  1. struct BMF bmp_fonts: Indica la fuente cargada que queremos usar.
  2. char *c: Un puntero a una cadena la cual se escribira usando la fuente.
  3. int x e int y: Indican el pixel donde se empezará a dibujar el texto.
void BMF_Write(struct BMF bmp_font,char *c, int x, int y)
{
	int iA,iB;
	char l = 'a';
	char r;
	draw_rect.x = x;
	draw_rect.y = y;
	
	for (iA=0; c[iA]; iA++)
	{
		for (iB = 0; iB<29; iB++)
		{			
			if ((l+iB)==c[iA])
			{
				rect.h = bmp_font.surface->h;
				rect.x = bmp_font.x[iB];
				rect.w = bmp_font.w[iB];
				SDL_BlitSurface(bmp_font.surface,&rect,screen,&draw_rect);
				draw_rect.x += bmp_font.w[iB];
				break;
			}
		}		
	}
}

En esta función lo que hacemos es ir leyendo la cadena de caracteres hasta llegar a su caracter nulo.

Antes que nada hay que comentar que las imagenes de las letras se encuentran ordenadas en un array siendo la la letra [0] la A y la letra [26] la Z.

Si embargo la letra A equivale al caracter ASCII 65, por esto hacemos

if ((l+iB)==c[iA])
	draw_rect.x += bmp_font.w[iB];

Also on Fandom

Random wikia