jeje este reportaje ya lo tenia, es muy interesante.
Saludos!
Saludos!
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenuCita de: "TheAzazel"Estoy corrigiendo bugs que me ha reportado la gente y le ha tocado el turno al tuyo que gracias a Dios ha sido muy sencillo:Ajá, entiendo, pues probaré a activar OpenGL para eso, aunque tampoco es que me sea muy obligatorio, yo lo puse en ventana el juego para que me fuera mas comodo luego el hacer el debug.
veras...la documentacion esta bien, si hay ACCEL_HARDSMOOTH el autorestore se pone en off PERO tu no estas en ese modo, una cosa es que lo hayas intentado utilizar, que lo haces bien, y otra cosa es que lo haya activado. Si revisas el log veras que hay un mensaje advirtiendo que no fue posible activar el modo que querias...porque? porque tambien estas pidiendo el modo ventana!! y double buffer en modo ventana solo te lo daria si usas el render de opengl, ni directX ni windib ni nada de nada :)
Por lo tanto, es importante que reviseis el log para ver si hay algun problema de estos.
PD: si estas usando visual studio puedes agregar esta linea:
CRM32Pro.Config.VideoRenderer = RENDER_OPENGL;
utilizara OpenGL, te ira todo mas rapido, soporte alpha por hardware, doublebuffer en modo ventana PERO aun no esta del todo probado en la lib, sera para la v5.00 asi que pruebalo solo para ver si te funciona o no.
CitarJusto lo que estoy haciendo ahora es una demo xD(no me quise meter a fondo en el juego, si veo que la demo me ha ido bien sigo con la idea que tengo del juego entero de lo contrario no) en cuanto la termine y vea que sale bien, lo subire y lo dejare por aqui para que lo veais si eso.
uhm...voy a echar un ojo a eso...
Por cierto,se puede ver una demo de lo que estas haciendo?
Saludos
Citar
If you used ACCEL_HARDSMOOTH(which will try to set a double-buffer) acceleration mode, it is disabled by default.
void dibujado(int bLogicUpdate)
{
SDL_FillRect(CRM32Pro.screen,
&CRM32Pro.screen->clip_rect,
SDL_MapRGB(CRM32Pro.screen->format,0,0,0));
scrollLoop(bg,&sclBg);
scrollLoop(stars,&sclStars);
nave->Draw(CRM32Pro.screen);
fnt->PutString(CRM32Pro.screen,20,20,"Space Mercenaries \"Demo\"",NULL);
}
CRM32Pro.Config.VideoWidth = 640;
CRM32Pro.Config.VideoHeight = 480;
CRM32Pro.Config.VideoBPP = 32;
CRM32Pro.Config.VideoAccel = ACCEL_HARDSMOOTH;
CRM32Pro.Config.VideoWindow = 1;
CRM32Pro.Config.Title = "Naves";
CRM32Pro.SetVideoMode();
CRM32Pro.SetRenderCallback(dibujado);
#include"cabecero.h"
char BG_PATH[128] = "data\\background\\";
int main(int argc, char *argv[])
{
// Declarando variables necesarias
SDL_Event event;
SDL_Rect sclView;
int done = 0;
SDL_Surface *bg;
int camMoves[3];
// Configurando CRM32Pro, definiendo titulo de ventana tamaño y
// profundidad de color.
CRM32Pro.Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER);
CRM32Pro.Config.VideoWidth = 640;
CRM32Pro.Config.VideoHeight = 480;
CRM32Pro.Config.VideoBPP = 32;
CRM32Pro.Config.Title = "Naves";
CRM32Pro.SetVideoMode();
// Carga de imagenes
bg = IImage->LoadBMP(strcat(BG_PATH,"cleanspace.bmp"));
for(int i = 0;i<=3;i++)
{
camMoves[i] = 0;
}
sclView.x = 0; sclView.y = 0;
sclView.w = CRM32Pro.screen->w; sclView.h = CRM32Pro.screen->h;
while(!done)
{
//Leer la entrada de teclado
while(CRM32Pro.Update(&event))
{
switch(event.type)
{
case SDL_QUIT:
done = 1;
break;
case SDL_KEYDOWN:
if(event.key.keysym.sym == SDLK_ESCAPE) done = 1;
if(event.key.keysym.sym == SDLK_UP) camMoves[MOVE_U] = 1;
if(event.key.keysym.sym == SDLK_DOWN) camMoves[MOVE_D] = 1;
if(event.key.keysym.sym == SDLK_LEFT) camMoves[MOVE_L] = 1;
if(event.key.keysym.sym == SDLK_RIGHT) camMoves[MOVE_R] = 1;
break;
case SDL_KEYUP:
if(event.key.keysym.sym == SDLK_UP) camMoves[MOVE_U] = 0;
if(event.key.keysym.sym == SDLK_DOWN) camMoves[MOVE_D] = 0;
if(event.key.keysym.sym == SDLK_LEFT) camMoves[MOVE_L] = 0;
if(event.key.keysym.sym == SDLK_RIGHT) camMoves[MOVE_R] = 0;
default:
break;
}
}
if(camMoves[MOVE_L])
{
sclView.x -= 2;
}
if(camMoves[MOVE_R])
{
sclView.x += 2;
}
if(camMoves[MOVE_U])
{
sclView.y -= 2;
}
if(camMoves[MOVE_D])
{
sclView.y += 2;
}
scroll(bg,&sclView);
}
SDL_FreeSurface(bg);
CRM32Pro.Quit();
return 0;
}