MiniJuego 2
3 participantes
Página 1 de 1.
MiniJuego 2
Hola a todos
Aquí tenéis la primera versión del MiniJuego 2.
Versión 0.1
Binario: [Tienes que estar registrado y conectado para ver este vínculo]
Código Fuente: [Tienes que estar registrado y conectado para ver este vínculo]
Versión 0.2
Mejoras:
-Mejora en el sistema de carga de imágenes para reducir el tiempo de carga.
-Eliminación de múltiples bucles para mejorar la velocidad y hacer más compacto el código.
-Incluido un sistema de niveles vasado en el tiempo.
Binario: [Tienes que estar registrado y conectado para ver este vínculo]
Código fuente: [Tienes que estar registrado y conectado para ver este vínculo]
Versión 0.3
Mejoras:
-Reducción del consumo de memoria de un 40% en los gráficos del MiniJuego.
Binario: [Tienes que estar registrado y conectado para ver este vínculo]
Código fuente: [Tienes que estar registrado y conectado para ver este vínculo]
Un saludo
Kaltorak.
Aquí tenéis la primera versión del MiniJuego 2.
Versión 0.1
Binario: [Tienes que estar registrado y conectado para ver este vínculo]
Código Fuente: [Tienes que estar registrado y conectado para ver este vínculo]
Versión 0.2
Mejoras:
-Mejora en el sistema de carga de imágenes para reducir el tiempo de carga.
-Eliminación de múltiples bucles para mejorar la velocidad y hacer más compacto el código.
-Incluido un sistema de niveles vasado en el tiempo.
Binario: [Tienes que estar registrado y conectado para ver este vínculo]
Código fuente: [Tienes que estar registrado y conectado para ver este vínculo]
Versión 0.3
Mejoras:
-Reducción del consumo de memoria de un 40% en los gráficos del MiniJuego.
Binario: [Tienes que estar registrado y conectado para ver este vínculo]
Código fuente: [Tienes que estar registrado y conectado para ver este vínculo]
Un saludo
Kaltorak.
Última edición por kaltorak el Lun Jun 10, 2013 12:04 am, editado 2 veces
kaltorak- Admin
- Mensajes : 178
Fecha de inscripción : 30/05/2013
Re: MiniJuego 2
- Código:
for(int I = 0;I < NumeroMaximoF;I++)
{
Flecha[I].Aspecto = SDL_LoadBMP("Flecha.bmp");
if ( !Flecha[I].Aspecto )
{
printf("Imposible Cagar la imagen Flecha.bmp \n");
return 1;
}
SDL_SetColorKey(Flecha[I].Aspecto,SDL_SRCCOLORKEY|SDL_RLEACCEL,SDL_MapRGBA(Flecha[I].Aspecto->format,255,0,255,0));
//Posicionamos la Flecha en pantalla
Flecha[I].PObjeto.w = Flecha[I].Aspecto->w;
Flecha[I].PObjeto.h = Flecha[I].Aspecto->h;
}
¿Te das cuenta que estás cargando una imagen por cada flecha? Una cosa esque nos demos una libertad en la memoria, pero eso me parece excesivo *_*
- Código:
if(Numero > 0)
{
for(int I = 0; I < Numero;I++)
{
//Comprobamos su direccion y las movemos en caso de sobrepasar su punto de vida la borramos.
if (Flecha[I].Direccion == 1)
{
Flecha[I].PObjeto.x += 3;
if(Flecha[I].PObjeto.x > (Tablero.PObjeto.x + Tablero.Aspecto->w + VidaDesTablero)){Numero--;}
}
else
{
Flecha[I].PObjeto.x -= 3;
if(Flecha[I].PObjeto.x < (Tablero.PObjeto.x - VidaDesTablero)){Numero--;}
}
}
}
/*si no quedan Flechas en pantalla es momento de genrar Flechas nuevas por eso ponemos
el valor de la variable InicioF a 1.*/
if(Numero == 0)
{
InicioF = 1;
}
//volcamos las Flechas en la Surface MiniJuego2Pantalla
for(int I = 0; I < Numero;I++)
{
SDL_BlitSurface(Flecha[I].Aspecto,NULL,MiniJuego2Pantalla,&Flecha[I].PObjeto);
}
Tienes que intentar poner los tres bucles for en uno. Ocupará mucho menos código y tendrá mayor rendimiento.
- Código:
/*Aleatoriamente seleccionamos el Numero de flechas que saldran siempre dejando un
hueco para que el heroe pueda escapar.*/
Numero = rand()%4+1;
No me parece el método más adecuado porque pueden salir muchas o pocas de golpe y no hay escalada de dificultad.
Yo voto por un contador de tiempo, y que este vaya disminuyendo con el juego.
amchacon- Admin
- Mensajes : 171
Fecha de inscripción : 30/05/2013
Re: MiniJuego 2
Nueva versión del MiniJuego 2
Versión 0.2
Mejoras:
-Mejora en el sistema de carga de imágenes para reducir el tiempo de carga.
-Eliminación de múltiples bucles para mejorar la velocidad y hacer más compacto el código.
-Incluido un sistema de niveles vasado en el tiempo.
Binario: [Tienes que estar registrado y conectado para ver este vínculo]
Código fuente: [Tienes que estar registrado y conectado para ver este vínculo]
Un saludo
Kaltorak.
Versión 0.2
Mejoras:
-Mejora en el sistema de carga de imágenes para reducir el tiempo de carga.
-Eliminación de múltiples bucles para mejorar la velocidad y hacer más compacto el código.
-Incluido un sistema de niveles vasado en el tiempo.
Binario: [Tienes que estar registrado y conectado para ver este vínculo]
Código fuente: [Tienes que estar registrado y conectado para ver este vínculo]
Un saludo
Kaltorak.
kaltorak- Admin
- Mensajes : 178
Fecha de inscripción : 30/05/2013
Re: MiniJuego 2
No se puede correr en linux, ya de por si rotozoom viene con gfx y fue un dilema compilarlo, además de compilar los paquetes respectivos, habia que instalar las dependencias, vale bueno pensaba que se solucionaba con instalar desde aqui
y hacer esto luego:
Pero ahora me sale esto:
Ahora, estos errores me indican lo mucho que es necesario windows, pues hace un uso muy abusivo de las librerias dll y de mingw32, no es posible portabilizarlo, viejo, estas usan dev-c++?? o borland, jaja se que traes un proyecto del minijuego2 en codeblocks (de hecho, note que tienes un proyecto minijuego2 dentro de otro proyecto minijuego2 en el fuente), pero simplemente no me fue posible compilarlo para linux.
Creo que para windows no es gran cosa, pero para una plataforma libre que es justamente para lo que se hizo SDL como linux o BSD simplemente no corrio, tenlo en cuenta por favor, Te recomendaria que una vez generes tus fuentes probaras tambien en una maquina virtual con linux a ver que tal corren tus juegos.
Una vez pueda correr todo el ensamblado de los 4 juegos en linux comenzare a documentar y postear por aqui unos howtos para iniciados en como debe usarse SDL y correr los juegos para linux, pero no puedo hacerlo solo, todos nos colaboramos, te pido que lo tengas en cuenta kaltorak
Quedo pendiente si publicas otra version más universal.
- Código:
http://www.ferzkopp.net/Software/SDL_rotozoom/
y hacer esto luego:
- Código:
sudo aptitude install libsdl-gfx1.2-dev libsdl1.2-dev
Pero ahora me sale esto:
- Código:
ld||cannot find -lmingw32|
ld||cannot find -lSDL.dll|
ld||cannot find -luser32|
ld||cannot find -lgdi32|
ld||cannot find -lwinmm|
ld||cannot find -ldxguid|
||=== Build finished: 6 errors, 0 warnings ===|
Ahora, estos errores me indican lo mucho que es necesario windows, pues hace un uso muy abusivo de las librerias dll y de mingw32, no es posible portabilizarlo, viejo, estas usan dev-c++?? o borland, jaja se que traes un proyecto del minijuego2 en codeblocks (de hecho, note que tienes un proyecto minijuego2 dentro de otro proyecto minijuego2 en el fuente), pero simplemente no me fue posible compilarlo para linux.
Creo que para windows no es gran cosa, pero para una plataforma libre que es justamente para lo que se hizo SDL como linux o BSD simplemente no corrio, tenlo en cuenta por favor, Te recomendaria que una vez generes tus fuentes probaras tambien en una maquina virtual con linux a ver que tal corren tus juegos.
Una vez pueda correr todo el ensamblado de los 4 juegos en linux comenzare a documentar y postear por aqui unos howtos para iniciados en como debe usarse SDL y correr los juegos para linux, pero no puedo hacerlo solo, todos nos colaboramos, te pido que lo tengas en cuenta kaltorak
Quedo pendiente si publicas otra version más universal.
dato000- Admin
- Mensajes : 161
Fecha de inscripción : 30/05/2013
Re: MiniJuego 2
- Código:
Flecha[I].Aspecto = SDL_CreateRGBSurface(SDL_SWSURFACE,Carga->w, Carga->h, PROFUNDIDADECOLOR,255,0,255,0);
No hay mucha diferencia entre cargar un bitmap de un BMP que generarlo tu mismo.
No es más fácil:
- Código:
SDL_Surface* Aspecto_Flecha = SDL_LoadBMP...
SDL_Surface* Aspecto_Flecha_Reves = //... (no hay una funcion que te la dibuje ya volteada? en Allegro sí había)
Y cuando quieras hacer una flecha tiras de ahí
Ahora, estos errores me indican lo mucho que es necesario windows, pues hace un uso muy abusivo de las librerias dll y de mingw32, no es posible portabilizarlo, viejo, estas usan dev-c++?? o borland, jaja se que traes un proyecto del minijuego2 en codeblocks (de hecho, note que tienes un proyecto minijuego2 dentro de otro proyecto minijuego2 en el fuente), pero simplemente no me fue posible compilarlo para linux.
No es necesario Windows para compilar, lo que pasa esque tienes que adaptar el proyecto a Linux.
Vete a project -> build options -> linker y elimina las librerías en las que te da error. También tienes que hacer una limpieza de la carpeta obj (o bien, darle a "Reconstruir todo").
amchacon- Admin
- Mensajes : 171
Fecha de inscripción : 30/05/2013
Re: MiniJuego 2
Ese es exactamente el problema, el linker del codeblocks lo deje de esta forma:
[Tienes que estar registrado y conectado para ver este vínculo]
Parece que todo marcha bien, pero cuando reconstruyo o compilo o trato de hacer algo, simplemente me solicita librerias del compilador de gcc para windows (dicese minGW) lo que provoca pues, el error:
[Tienes que estar registrado y conectado para ver este vínculo]
Parece que todo marcha bien, pero cuando reconstruyo o compilo o trato de hacer algo, simplemente me solicita librerias del compilador de gcc para windows (dicese minGW) lo que provoca pues, el error:
- Código:
ld||cannot find -lmingw32|
ld||cannot find -lSDL.dll|
ld||cannot find -luser32|
ld||cannot find -lgdi32|
ld||cannot find -lwinmm|
ld||cannot find -ldxguid|
||=== Build finished: 6 errors, 0 warnings ===|
dato000- Admin
- Mensajes : 161
Fecha de inscripción : 30/05/2013
Re: MiniJuego 2
Al construir se aplican dos opciones, las del compilador y las del proyecto
Repito, vete a project -> build options -> linker settings. En compiler settings no deberías linkar librerías específicas, te volverás un lío cuando cambies de proyecto.
Repito, vete a project -> build options -> linker settings. En compiler settings no deberías linkar librerías específicas, te volverás un lío cuando cambies de proyecto.
amchacon- Admin
- Mensajes : 171
Fecha de inscripción : 30/05/2013
Re: MiniJuego 2
No, de hecho linkear las librerias universales es muy recomendable, para allegro y para SDL funcionan bien, pero el problema radica en el rotozoom, no estoy rajando, simplemente que aun no doy con la forma.
dato000- Admin
- Mensajes : 161
Fecha de inscripción : 30/05/2013
Re: MiniJuego 2
No lo és porque estas linkando las librerías a todos los proyectos.dato000 escribió:No, de hecho linkear las librerias universales es muy recomendable, para allegro y para SDL funcionan bien, pero el problema radica en el rotozoom, no estoy rajando, simplemente que aun no doy con la forma.
Si no quieres estar linkando librerías, para eso están las plantillas.
amchacon- Admin
- Mensajes : 171
Fecha de inscripción : 30/05/2013
Re: MiniJuego 2
No tienen por qué ser un problema las librerías SDL_gfx yo ya las he usado con anterioridad en Ubuntu, cuando llegue a casa que es donde tengo virtualizado ubuntu miro como lo hice y lo explico.
no he dicho que esta nueva versión reduzca el consumo de memoria sino que:
-Mejora el sistema de carga de imágenes para reducir el tiempo de carga.
Por qué no es lo mismo leer una vez del disco que 5
Lo de la memoria lo soluciono esta noche.
Pero creo que somos demasiado prudentes por 10k de memoria, teniendo en cuenta la cantidad de memoria que tienen los ordenadores hoy en día.
Código:
Flecha[I].Aspecto = SDL_CreateRGBSurface(SDL_SWSURFACE,Carga->w, Carga->h, PROFUNDIDADECOLOR,255,0,255,0);
No hay mucha diferencia entre cargar un bitmap de un BMP que generarlo tu mismo.
no he dicho que esta nueva versión reduzca el consumo de memoria sino que:
-Mejora el sistema de carga de imágenes para reducir el tiempo de carga.
Por qué no es lo mismo leer una vez del disco que 5
Lo de la memoria lo soluciono esta noche.
Pero creo que somos demasiado prudentes por 10k de memoria, teniendo en cuenta la cantidad de memoria que tienen los ordenadores hoy en día.
kaltorak- Admin
- Mensajes : 178
Fecha de inscripción : 30/05/2013
Re: MiniJuego 2
Aún me acuerdo de un snake que me llegó a consumir 50 mb de memoria (aunque esto fue porque no liberaba nunca la memoria ).kaltorak escribió:Pero creo que somos demasiado prudentes por 10k de memoria, teniendo en cuenta la cantidad de memoria que tienen los ordenadores hoy en día.
Se puede tener libertad, pero si hay algo que puedas evitar, es mejor hacerlo bien.
amchacon- Admin
- Mensajes : 171
Fecha de inscripción : 30/05/2013
Re: MiniJuego 2
amchacon escribió:No lo és porque estas linkando las librerías a todos los proyectos.dato000 escribió:No, de hecho linkear las librerias universales es muy recomendable, para allegro y para SDL funcionan bien, pero el problema radica en el rotozoom, no estoy rajando, simplemente que aun no doy con la forma.
Si no quieres estar linkando librerías, para eso están las plantillas.
aunque se linkeen todas las librerias, no es que se haga un uso exhaustivo de memoria tan barbaro, pues si sus funciones no son llamadas, simplemente queda su referencia, y no se gasta nada, en cambio yo las dejo listas siempre cuando voy a compilar para evitar esos inconvenientes, aunque en estos momentos estoy en windows, no tardare en dar con el fallo, aunque estoy convencido que eso se debe al compilador de minGW32 que lo cierra para windows.
dato000- Admin
- Mensajes : 161
Fecha de inscripción : 30/05/2013
Re: MiniJuego 2
Repito que no es lo más adecuado, luego pasará que una librería sea incompatible con otra (porque tenga algo con el mismo nombre) y entonces tendrás errores extraños.dato000 escribió:amchacon escribió:No lo és porque estas linkando las librerías a todos los proyectos.dato000 escribió:No, de hecho linkear las librerias universales es muy recomendable, para allegro y para SDL funcionan bien, pero el problema radica en el rotozoom, no estoy rajando, simplemente que aun no doy con la forma.
Si no quieres estar linkando librerías, para eso están las plantillas.
aunque se linkeen todas las librerias, no es que se haga un uso exhaustivo de memoria tan barbaro, pues si sus funciones no son llamadas, simplemente queda su referencia, y no se gasta nada, en cambio yo las dejo listas siempre cuando voy a compilar para evitar esos inconvenientes, aunque en estos momentos estoy en windows, no tardare en dar con el fallo, aunque estoy convencido que eso se debe al compilador de minGW32 que lo cierra para windows.
El encapsulamiento es una técnica de programación muy importante para evitar errores extraños. Codeblocks fue construido con esta premisa y por eso puedes configurar tres capas de construcción:
- Las genéricas, se encuentran en las opciones de compilación.
- Las del proyecto.
- Las target build (Release,Debug o las que crees).
Cada capa de configuración se va añadiendo a la otra.
Estoy terminando con el menú, cuando termine subiré el proyecto ensamblado ya configurado para Linux y Windows (vete instalado las SDL_image ).
amchacon- Admin
- Mensajes : 171
Fecha de inscripción : 30/05/2013
Re: MiniJuego 2
Nuevo día nueva versión
Versión 0.3
Mejoras:
-Reducción del consumo de memoria de un 40% en los gráficos del MiniJuego.
Binario: [Tienes que estar registrado y conectado para ver este vínculo]
Código fuente: [Tienes que estar registrado y conectado para ver este vínculo]
Un saludo
Kaltorak.
Versión 0.3
Mejoras:
-Reducción del consumo de memoria de un 40% en los gráficos del MiniJuego.
Binario: [Tienes que estar registrado y conectado para ver este vínculo]
Código fuente: [Tienes que estar registrado y conectado para ver este vínculo]
Un saludo
Kaltorak.
kaltorak- Admin
- Mensajes : 178
Fecha de inscripción : 30/05/2013
Re: MiniJuego 2
kaltorak escribió:Nuevo día nueva versión
Versión 0.3
Mejoras:
-Reducción del consumo de memoria de un 40% en los gráficos del MiniJuego.
Binario: [Tienes que estar registrado y conectado para ver este vínculo]
Código fuente: [Tienes que estar registrado y conectado para ver este vínculo]
Un saludo
Kaltorak.
amchacon- Admin
- Mensajes : 171
Fecha de inscripción : 30/05/2013
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.