Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Compatibilidad Win32 y SDL??

Iniciado por Mcur, 03 de Marzo de 2007, 10:52:27 AM

« anterior - próximo »

Mcur

No se si lo que voy a decir es una brutalidad, pero podria crearse una funcion que rote por sofware pero no en tiempo real, sino que se almacenen los sprites en una matriz para despues utilizarlo. La funcion te pediria los grados de rotacion y el nº de sprites que deseas y ella rotaria y almacenaria para despues utilizarlo en la ejecución. Hacer 360 rotaciones en un programa externo, una a una debe ser demasiado tedioso, asi lo haria la función por tí.

Bueno, imagino que esto que acabo de decir es una chorrada, o un despilfarro de memoria y recursos, pero me he decepcionado mucho al ver que SDL no incluye ni rotaciones ni escalados(sobre todo el escalado, algun zoom en un momento concreto siempre viene bien, sobre todo en los menus).

En Allegro recuerdo haber escalado y rotado sprites (Un poco pencos pero bueno).

Quiero hacer un juego de estrategia tipo ajedrez. El tablero quiero que este en 3D prerenderizado, pero las piezas quiero que al moverse por el tablero siempre esten de perfil, pero al alejarse o acercarse escalen.
¿Que me recomendais? ¿OpenGL? ¿SDL_gfx? ¿Allegro? ¿DirectX? ¿Lo hago   en plan MarioKart de la supernintendo (Osea, con escalados creados externamente)? Con este lio, me cojo una cartulina y unas temperas y me hago el tablero en plan artesano y a jugar que son dos dias.

Oye, gracias a todos por todo.

Mcur

No sé si lo que voy a decir es una brutalidad, pero podría crearse una función que rote por software pero no en tiempo real, sino que se almacenen los sprites en una matriz para después utilizarlo. La función te pediría los grados de rotación y el nº de sprites que deseas y ella rotaria y almacenaría para después utilizarlo en la ejecución. Hacer 360 rotaciones en un programa externo, una a una debe ser demasiado tedioso, así lo haría la función por ti.

Bueno, imagino que esto que acabo de decir es una chorrada, o un despilfarro de memoria y recursos, pero me he decepcionado mucho al ver que SDL no incluye ni rotaciones ni escalados (sobre todo el escalado, algún zoom en un momento concreto siempre viene bien, sobre todo en los menús).

En Allegro recuerdo haber escalado y rotado sprites (Un poco pencos pero bueno).

Quiero hacer un juego de estrategia tipo ajedrez. El tablero quiero que este en 3D prerenderizado, pero las piezas quiero que al moverse por el tablero siempre estén de perfil, pero al alejarse o acercarse escalen.
¿Qué me recomendáis? ¿OpenGL? ¿SDL_gfx? ¿Allegro? ¿DirectX? ¿Lo hago   en plan MarioKart de la supernintendo (O sea, con escalados creados externamente)? Con este lio, me cojo una cartulina y unas temperas y me hago el tablero en plan artesano y a jugar que son dos días.

Oye, gracias a todos por todo.

Sante

Cita de: "currilingo"No sé si lo que voy a decir es una brutalidad, pero podría crearse una función que rote por software pero no en tiempo real, sino que se almacenen los sprites en una matriz para después utilizarlo. La función te pediría los grados de rotación y el nº de sprites que deseas y ella rotaria y almacenaría para después utilizarlo en la ejecución. Hacer 360 rotaciones en un programa externo, una a una debe ser demasiado tedioso, así lo haría la función por ti.

No es una brutalidad, para nada. De hecho el rotozoom con smooth está pensado para usarse así. Pero, ya que vas a crear una manera automática de generar los sprites, ¿por que no lo haces como programa externo?

Es decir, tu haces un sprite a mano, y luego lo pasas por este programa que te lo va rotando y te genera todos los demás. Y también los mete automáticamente todos juntos en la misma imagen, que es la que cargaría el juego.

Es lo mismo que propones, solo que ya lo haces tú una sola vez, y reduces el tiempo de carga del juego. Aqui es cuestión de si prefieres alargar el tiempo de carga y hacerlo al arrancar, o gastar mas espacio en tus archivos de imágenes y arrancar mas rápido.

Cita de: "currilingo"
Quiero hacer un juego de estrategia tipo ajedrez. El tablero quiero que este en 3D prerenderizado, pero las piezas quiero que al moverse por el tablero siempre estén de perfil, pero al alejarse o acercarse escalen.
¿Qué me recomendáis? ¿OpenGL? ¿SDL_gfx? ¿Allegro? ¿DirectX? ¿Lo hago   en plan MarioKart de la supernintendo (O sea, con escalados creados externamente)? Con este lio, me cojo una cartulina y unas temperas y me hago el tablero en plan artesano y a jugar que son dos días.

En este caso, el truco está en aprovechar que en el ajedrez todas las piezas están quietas menos una. Es decir, solo tendrías que escalar una imagen a tiempo real (suponiendo que no quieras pregenerarla). El resto de la pantalla no cambia, y lo dibujas como una sola superficie uniforme.

No sé como es de lento la escalacion por software, pero estoy asumiendo que hacer una sola llamada por fotograma sería algo aceptable. Eso si, desactiva el smooth y usa superficies de 32 o 8 bits de profundidad, nada intermedio. Crealas tambien en memoria software.

Si no da la velocidad, solo te quedaría pregenerar. Asi que haz la prueba y a ver que tal. Suerte!

Mcur

Bueno, si hay algo que odio son los post que no terminan, así que vamos a intentar darle punto y final a este.

La pregunta era si SDL es compatible con Win32. Supuestamente sí, pero aunque SDL trabaja con ventanas, aun no sé si una vez iniciado es posible utilizar eventos de Win32 (Me imagino que no, bueno, no lo sé, es por eso el post leñe).

Por otra parte, en medio de muchas muchas pruebas con SDL descubro que no rota ni escala. Me gusta la idea de generar las rotaciones y escalados pero me parece una limitación a medio-largo plazo. Con SDL_gfx se pueden hacer rotaciones, OK, asunto solucionado (Aunque aun no he visto el resultado que dá).

Ahora bien, ya he probado Allegro, ya he probado SDL, las dos librerías las he visto muy por encima (De eso se trataba, de una toma de contacto) Si bien las dos son muy sencillas de manejar-comprender-documentarse, tengo la sensación de que Allegro está más orientada al videojuego y SDL es multifunción. Cual elegir?? Pues ahora viene el dilema. Bueno, por una temporadita me pondré a diseñar el juego e iré haciendo pruebas con ambas librerías, pues ahora no sabría por cual decantarme. Allegro me ha gustado mucho y más compacta que SDL. A su vez, SDL me da un aspecto más profesional, aunque no sé porque. Aun no he podido ver las rotaciones de SDL, pero las de Allegro son una pena. Bueno, lo dicho, que me retiro a diseñar que es lo mío, al fin y al cabo soy dibujante, eso sí, me lo paso de muerte delante del compilador dándome errores uno detrás de otro (Me acuesto todos los días a las tantas de la madrugada, esto de programar no es bueno).

Lo dicho, gracias por todo y un saludo.

PD: Iré poniendo los diseños del videojuego en mi blog a medida que los vaya haciendo, por si os animáis y queréis echarle un vistazo www.currobot.blogspot.com







Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.