• Lunes 18 de Noviembre de 2024, 03:27

Autor Tema:  Juego Asteroides  (Leído 6535 veces)

Ruben3d

  • Miembro HIPER activo
  • ****
  • Mensajes: 710
  • Nacionalidad: es
    • Ver Perfil
    • Web personal
Juego Asteroides
« en: Lunes 14 de Junio de 2004, 21:39 »
0
Buenas.

Como ahora parece que la gente se ha animado a mostrar sus trabajos a mi también me han dado ganas :P.

Este es el primer juego que programé desde los tiempos del QBasic (si excluyo uno de encontrar las diferencias entre dos imágenes en VB), realizado principalmente en Junio del año pasado, para aprender algo de programación en Windows y OpenGL orientado a 2D (en aquélla época programaba casi exclusivamente en C bajo Linux). Si me decidí a hacerlo es porque un amigo me propuso hacer una versión de ese juego en el menor tiempo posible.

Está en C y coge justo cuando fui a empezar a aprender C++ (usa clases, pero es un burruño). El código es un ejemplo de cómo no han de hacerse las cosas :(, así que por eso no lo incluyo (creedme, es un burruño de aupa). Si alguien quiere saber cómo está hecho algo o el fragmento de código de alguna parte, no me importa ponerlo.

- Asteroids -

Para ver el contenido del fichero PAK podéis usar el QPed.

Un saludo.

Ruben3d

EDIT: Se me olvidaba poner cómo se juega :P. La nave se gira con Cursor Izq y Dcha. Cursor Arriba da potencia. No se puede frenar, así que hay que girar 180º y dar potencia en el ángulo contrario (le da más alegría al juego). La barra espaciadora dispara y Esc interrumpe el juego y vuelve al menú.

Recomiendo moverse lo justo y necesario :D, y con pulsaciones pequeñas del Cursor Arriba.

LeGatoRojo

  • Miembro HIPER activo
  • ****
  • Mensajes: 552
  • Nacionalidad: mx
    • Ver Perfil
    • LeGatoRojo
Re: Juego Asteroides
« Respuesta #1 en: Martes 15 de Junio de 2004, 08:01 »
0
Disculpa mi ignorancia, como abro el .rar
Un día desperte y en lugar de dientes tenía colmillos, en lugar de manos, tenía garras; pero lo más impactante fue el color escarlata de mi pelaje.

Blag

  • Moderador
  • ******
  • Mensajes: 697
    • Ver Perfil
    • http://atejada.blogspot.com
Re: Juego Asteroides
« Respuesta #2 en: Martes 15 de Junio de 2004, 08:22 »
0
Citar
Disculpa mi ignorancia, como abro el .rar

Tienes que descargar el WinRAR WinRAR

Excelente Ruden3D  :kicking:

Realmente me ha parecido un juego excelente....Lástima que digas que tu código está tan desordenado y desorganizado.....Pero igual me gustaría verlo  :lol:  No se si me lo puedas enviar a mi correo??????  :P

Saludos,

Blag  :devil:

LeGatoRojo

  • Miembro HIPER activo
  • ****
  • Mensajes: 552
  • Nacionalidad: mx
    • Ver Perfil
    • LeGatoRojo
Re: Juego Asteroides
« Respuesta #3 en: Martes 15 de Junio de 2004, 08:57 »
0
Ahora si que te rifaste, este juego esta bien, deberias publicar el codigo fuente, creo que todos queremos eso, bueno te felicito [/size]
Un día desperte y en lugar de dientes tenía colmillos, en lugar de manos, tenía garras; pero lo más impactante fue el color escarlata de mi pelaje.

Ruben3d

  • Miembro HIPER activo
  • ****
  • Mensajes: 710
  • Nacionalidad: es
    • Ver Perfil
    • Web personal
Re: Juego Asteroides
« Respuesta #4 en: Martes 15 de Junio de 2004, 12:01 »
0
Hola.

Bueno, decidí poner el código para descargar. Recordad que
Cita de: "yo"
así NO se programa :D
No busquéis constructores y destructores, herencia, etc, porque no la hay. Algunas cosas, como el crear la ventana, la fuente, etc, están sacadas de la web de Nehe. El código de carga de los TGA está sacado de GameTutorials. En aquella época tampoco conocía una cosa llamada STL, así que los arrays dinámicos están a lo artesanal. Respecto al código de OpenGL, bueno, digamos que tenía conocimientos escasos. Lo único que aprovecho de ahí es FileSystem (mirad la fecha y veréis la diferencia), aunque bastante mejorado, y algunas pocas cosas más (el generador de números aleatorios).

- Asteroids - Código fuente -

Un saludo.

Ruben3d

PD: Al principio codificaba en español y después empecé a hacerlo en inglés (y así sigo, pq los nombres de las funciones tienen más gancho y son más cortos: 'IntercambiarAlmacenamientosTemporales' o 'SwapBuffers'?). Por esto el código está en spanglish :D.

Blag

  • Moderador
  • ******
  • Mensajes: 697
    • Ver Perfil
    • http://atejada.blogspot.com
Re: Juego Asteroides
« Respuesta #5 en: Martes 15 de Junio de 2004, 17:59 »
0
Muchas gracias por el código fuente!!!!  :hola:
La verdad no importa que tan artesanal este..... :lol:

Citar
Al principio codificaba en español y después empecé a hacerlo en inglés (y así sigo, pq los nombres de las funciones tienen más gancho y son más cortos

Jejejeje......Yo también siempre programo en inglés, se me hace más cómodo, más corto y además, todos los lenguajes de programción están en inglés...... :scream:

Saludos,

Blag  :devil:

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: Juego Asteroides
« Respuesta #6 en: Miércoles 16 de Junio de 2004, 00:30 »
0
El juego está muy bueno, tiene buena pinta y es divertido!.

bob esponja

  • Miembro MUY activo
  • ***
  • Mensajes: 411
    • Ver Perfil
    • http://marianoguerra.blogspot.com
Re: Juego Asteroides
« Respuesta #7 en: Domingo 20 de Junio de 2004, 21:53 »
0
muy bueno el juego. a mi gusto impresionante pero paso a contarte
lo baje en un cyber l probe y me encanto me lo llevo a mi casa poque estaba decidido a aprender a usar openGL (cosa que habia empezado y despues deje).

y cuando lo ejecuto para jugarlo un rato (EN MI PENTIUM 133 MHZ 32 MB DE RAM)
me daba 0.3 frames por segundo lo cual me desalento totalmente.

es culpa de openGL?, la codificacion pude influir tanto en el desempeño?

por favor me gustaria que respondas

gracias de antemano

Ruben3d

  • Miembro HIPER activo
  • ****
  • Mensajes: 710
  • Nacionalidad: es
    • Ver Perfil
    • Web personal
Re: Juego Asteroides
« Respuesta #8 en: Lunes 21 de Junio de 2004, 00:03 »
0
Hola.

OpenGL utiliza la aceleradora gráfica para dibujar. Es un API para gráficos 3D así que estoy pintando polígonos en 3D (solo que la proyección hace parecer que es 2D).

Si tu ordenador no tiene aceleradora gráfica todos estos cálculos han de hacerse por software, así que el rendimiento desciende muchísimo. Además, creo recordar que excepto el fondo todo usa alpha blending, para peor rendimiento sin aceleradora.

Un saludo.

Ruben3d

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: Juego Asteroides
« Respuesta #9 en: Lunes 21 de Junio de 2004, 17:32 »
0
Hola.

¿Probaron usando las superficies en memoria del sistema (RAM) cuando tienen una tarjeta de video antigua, como una de 8mb?

Generalmente el rendimiento mejora bastante: Como todo el cálculo lo hace el procesador, teniendo el problema de tener que acceder hasta la memoria de tarjeta de video, llevar los datos al procesador y otra vez hasta la memoria de la tarjeta de video empeora las cosas. Si esos datos están en RAM el "tramite" no es tan feo.

Lo mismo sucede a la inversa: con una buena tarjeta aceleradora siempre será deseable tener TODAS las superficies en memoria de la tarjeta aceleradora para evitar el trámite ese.