SDL_SetColorKey doesn't work

Hi, I started to write a small program, which runs fine, except this
function, which doesn’t set the trasparent pixel:

int display_ciff()
{
int frame = 0;
SDL_Surface *ciff[14];
SDL_Rect Ciff;
ciff[0] = SDL_LoadBMP(“images/combatters/ciff/0.bmp”);
ciff[1] = SDL_LoadBMP(“images/combatters/ciff/1.bmp”);
ciff[2] = SDL_LoadBMP(“images/combatters/ciff/2.bmp”);
ciff[3] = SDL_LoadBMP(“images/combatters/ciff/3.bmp”);
ciff[4] = SDL_LoadBMP(“images/combatters/ciff/4.bmp”);
ciff[5] = SDL_LoadBMP(“images/combatters/ciff/5.bmp”);
ciff[6] = SDL_LoadBMP(“images/combatters/ciff/6.bmp”);
ciff[7] = SDL_LoadBMP(“images/combatters/ciff/7.bmp”);
ciff[8] = SDL_LoadBMP(“images/combatters/ciff/8.bmp”);
ciff[9] = SDL_LoadBMP(“images/combatters/ciff/9.bmp”);
ciff[10] = SDL_LoadBMP(“images/combatters/ciff/10.bmp”);
ciff[11] = SDL_LoadBMP(“images/combatters/ciff/11.bmp”);
ciff[12] = SDL_LoadBMP(“images/combatters/ciff/12.bmp”);
ciff[13] = SDL_LoadBMP(“images/combatters/ciff/13.bmp”);
Ciff.x = ciff_x;
Ciff.y = ciff_y;
while(frame < 14)
{
Uint32 colorkey = SDL_MapRGB(ciff[frame]->format, 0, 0, 255);
SDL_BlitSurface(ciff[frame], NULL, screen, &Ciff);
SDL_SetColorKey(ciff[frame], SDL_SRCCOLORKEY|SDL_RLEACCEL, colorkey);
SDL_UpdateRect(screen, Ciff.x, Ciff.y, ciff->w, ciff->h);
SDL_Delay(30);
SDL_FreeSurface(ciff[frame]);
frame++;
}
return 0;
}

if someone can help please respond.

while(frame < 14)
{
Uint32 colorkey = SDL_MapRGB(ciff[frame]->format, 0, 0, 255);
SDL_BlitSurface(ciff[frame], NULL, screen, &Ciff);
SDL_SetColorKey(ciff[frame], SDL_SRCCOLORKEY|SDL_RLEACCEL, colorkey);
SDL_UpdateRect(screen, Ciff.x, Ciff.y, ciff->w, ciff->h);
SDL_Delay(30);
SDL_FreeSurface(ciff[frame]);

if someone can help please respond.

Err, why are you setting the color key AFTER you blit? :)On Fri, Mar 07, 2008 at 11:59:24PM +0100, ilia platone wrote:


-bill!
bill at newbreedsoftware.com
http://www.newbreedsoftware.com/

thanks a lot, now it sets the transparent color, but older frames still
remain impressed…