1
General / Reportaje: industria de los videojuegos.
« en: 29 de Julio de 2007, 11:49:35 am »
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.
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:
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.
uhm...voy a echar un ojo a eso...
Por cierto,se puede ver una demo de lo que estas haciendo?
Saludos
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;
}