2010-06-23 11 views
5

Estoy comenzando con la programación en C++ y quiero intentar crear un clon de invasores del espacio en C++, quiero evitar el uso de bibliotecas de juegos y cosas que resolverían muchos de los problemas (como bucle de juego y matemáticas vectoriales, etc.) así que puedo abordarlos yo mismo, pero no tengo idea de cómo comenzar a dibujar cosas en una pantalla.¿Hay una biblioteca simple para que C++ dibuje en la pantalla?

Me preguntaba si hay una buena biblioteca que debería utilizar para simplemente permitirme dibujar líneas o gráficos en la pantalla o si puedo hacer esto sin el uso de una biblioteca.

Agradecería cualquier consejo,

Thanks.

+2

¿Qué sistema operativo? –

+4

C++ no puede hacer * cualquier cosa * sin una biblioteca. Hace muy pocas suposiciones sobre la máquina en la que se ejecutará; en particular, no supone que tenga ninguna capacidad de gráficos en absoluto. –

+0

Este podría ser un caso donde el desarrollo iterativo es un mejor enfoque, comenzando con una biblioteca que resuelve la mayoría de los problemas para usted, solo para obtener un funcionamiento mínimo del juego, luego reemplazando lentamente cada pieza proporcionada por la biblioteca con algo que usted mismo escribió . El inconveniente es que su estructura final será bastante similar al diseño de la biblioteca original, pero lo bueno es que siempre tendrá un programa funcional al que volver. –

Respuesta

6

recomiendo ya sea Allegro o SDL, a pesar de que son en su mayoría 2D:

Allegro:
http://alleg.sourceforge.net/

SDL:
http://www.libsdl.org/

+0

He usado ambos y son bastante fáciles de usar si conoces C++. – daveangel

+0

Este es el mejor libro para usar Allegro para hacer juegos: http://www.amazon.com/Game-Programming-All-Jonathan-Harbour/dp/1598632892/ref=ntt_at_ep_dpi_1 – daveangel

4

Echa un vistazo SDL.

2

PixelToaster (era OpenPTC/TinyPTC) es uno de mis favoritos. Es bastante minimalista y muy fácil de empezar.

3

Supongo que SDL es la biblioteca simple que está buscando. Si lo desea, puede trabajar bastante con la pantalla como un framebuffer donde puede modificar píxel por píxel si realmente lo desea. Es una biblioteca C, pero está bastante orientada a objetos, por lo que también es agradable trabajar en C++.

0

¿No sería más interesante hacerlo imprimiendo 80x? caracteres ascii en la pantalla cada .x segundos?

1

En mi opinión, comenzar de inmediato con una biblioteca de GUI como wxWidgets (www.wxwidgets.org) es una buena idea porque a menudo son independientes de la plataforma y proporcionan buenos mecanismos de dibujo, además de todas las demás cosas de GUI que pueda encuentra útil más adelante.

2

Hay muchas bibliotecas simples. SDL y Allegro han recibido una gran cantidad de menciones ya, pero hay varios otros también:

  • OpenGL
  • DirectX (sí, sí, lo sé, no es "simple", pero sin duda hace el trabajo)
  • Cairo (para el dibujo vectorial)
  • SFML (SDL un parecido que tiene algunas primitivas de dibujo)
  • GGI
  • Qt (lo que lo hace mucho más de lo widgets y es altamente modular)
  • DirectFB (que funciona sin una interfaz gráfica de usuario de acogida como X.org)

y muchos otros que estarán bebiendo yo para olvidar.

+0

OpenGL es de muy bajo nivel, No estoy seguro de que un tipo que solo quiere hacer un juego quiera revisar todo eso. SDL ya se ejecuta en OpenGL, así que supongo que podría ser un sustituto. Además, DirectX es una plataforma solo para Windows, OpenGL es multiplataforma. :) –

+0

@Johannes Jensen: SDL no se ejecuta * en * OpenGL, hasta donde yo sé. * Facilita * OpenGL, pero en realidad * no * lo usa. De hecho, a menos que haya habido algún cambio importante en la API que desconozco, ni siquiera tiene primitivas de dibujo. Simplemente le da una superficie de trama para dibujar. Incluso diría que SDL es * inferior * -level que OpenGL por ese motivo. (Y menciono DirectX solo para completar.) – greyfade

+0

SDL puede crear contextos OpenGL, pero SDL puro usa un renderizador de software (muy lento). – orlp

Cuestiones relacionadas