boubou
26/06/2005, 20:43
Buenas, estaba yo haciendo una chorrada para la gp y resulta que me va lenta xDDD
esta hecha en sdl, pego aqui un trozo de codigo.
A ver si me podeis aydar a optimizar el codigo ;).
#include "global.h"
SDL_Surface *luchador[9999];
SDL_Rect r[9999];
SDL_Surface *backg;
SDL_Rect r2;
int back=0;
SDL_Surface *dest;
void load_background(char *file){
backg=SDL_LoadBMP(file);
r2.w = backg->w;
r2.h = backg->h;
r2.x=0;
r2.y=0;
back=1;
}
void load_luch(char *file,int n){
luchador[n]=SDL_LoadBMP(file);
SDL_SetColorKey (luchador[n], (SDL_SRCCOLORKEY | SDL_RLEACCEL) ,SDL_MapRGB(luchador[n] -> format,0, 0, 0));
}
void luch_set_position(int n,int x,int y){
r[n].w = luchador[n]->w;
r[n].h = luchador[n]->h;
r[n].x=x;
r[n].y=y;
}
void render_luch(int n,SDL_Surface *surf){
SDL_BlitSurface(luchador[n], NULL, surf, &r[n]);
SDL_UpdateRects(luchador[n],1,&r[n]);
}
void render_background(SDL_Surface *surf){
if(back==1){SDL_BlitSurface(backg, NULL, surf, &r2);
SDL_UpdateRects(backg,1,&r2);
}
}
void flip(SDL_Surface *surf){
SDL_Flip(surf);
}
void free_luch(int n){
SDL_FreeSurface(luchador[n]);
luchador[n]=NULL;
}
esta hecha en sdl, pego aqui un trozo de codigo.
A ver si me podeis aydar a optimizar el codigo ;).
#include "global.h"
SDL_Surface *luchador[9999];
SDL_Rect r[9999];
SDL_Surface *backg;
SDL_Rect r2;
int back=0;
SDL_Surface *dest;
void load_background(char *file){
backg=SDL_LoadBMP(file);
r2.w = backg->w;
r2.h = backg->h;
r2.x=0;
r2.y=0;
back=1;
}
void load_luch(char *file,int n){
luchador[n]=SDL_LoadBMP(file);
SDL_SetColorKey (luchador[n], (SDL_SRCCOLORKEY | SDL_RLEACCEL) ,SDL_MapRGB(luchador[n] -> format,0, 0, 0));
}
void luch_set_position(int n,int x,int y){
r[n].w = luchador[n]->w;
r[n].h = luchador[n]->h;
r[n].x=x;
r[n].y=y;
}
void render_luch(int n,SDL_Surface *surf){
SDL_BlitSurface(luchador[n], NULL, surf, &r[n]);
SDL_UpdateRects(luchador[n],1,&r[n]);
}
void render_background(SDL_Surface *surf){
if(back==1){SDL_BlitSurface(backg, NULL, surf, &r2);
SDL_UpdateRects(backg,1,&r2);
}
}
void flip(SDL_Surface *surf){
SDL_Flip(surf);
}
void free_luch(int n){
SDL_FreeSurface(luchador[n]);
luchador[n]=NULL;
}