[ Foro de C# ]

Sprites sin consola

02-Dec-2013 16:11
Invitado (sreaver)
2 Respuestas

Buenas tardes,

Lo primero, felicitar a Don Nacho Cabanes, por la gran labor que está desarrollando, permitiendo que personas como yo, que aunque aún estoy muy verde en c#, estoy aprendiendo con 35 años, cuando ya pensaba que nunca lo haría.

Y me gustaría preguntar como se puede desarrollar una aplicación que no sea un form o una consola. Lo que quiero es mostrar unos sprites animados en la pantalla, pero que se quede el fondo, es decir, si me encuentro en el escritorio y quiero mostrar un muñeco andando, que no sea en una consola, si no en el propio escritorio.
No necesito que me expliquen exactamente como es, solo un poco de orientación para saber sobre que buscar, porque normalmente, lo que leo sobre sprites, son en aplicaciones de consola.
Espero que se entienda la pregunta.
Muchas gracias


05-Dec-2013 09:59
Nacho Cabanes (+31)

No es algo especialmente fácil de hacer.

Ten en cuenta que Windows es un sistema basado en ventanas, de modo que "casi te obliga" a dibujar dentro de una ventana. En la mayoría de juegos, esa ventana la genera la propia biblioteca de juegos, ya sea SDL, DirectX, OpenGL o cualquier otra. En las aplicaciones de "Windows Forms", es el propio "punto net" el que te da acceso a las ventanas, pero el dibujado no suele ser tan rápido ni tan suave como con una biblioteca de juegos.

Por cierto, una aplicación de consola "pura" no puede dibujar Sprites, sólo texto; las que puedes ver en mi Introducción a la programación de juegos IPJ2012 http://www.nachocabanes.com/videojuegos/ipj2012/ no son aplicaciones de consola, sino aplicaciones gráficas basadas en SDL, que se pueden lanzar a partir de un proyecto de "aplicación de consola" o de un proyecto de "aplicación de Windows", pero no son aplicaciones de consola como tal.

Volviendo a tu pregunta, hay varias soluciones. La más fácil es que tu ventana esté maximizada y sea transparente. Es algo que permite Windows Forms pero que no permiten todas las bibliotecas de juegos. Otras soluciones alternativas incluyen crear un objeto gráfico a partir del contenido del escritorio, pero eso puede tener complicaciones, como que no se actualizará de forma automática si cambia el contenido del escritorio.

Si hablas inglés, StackOverflow es un lugar fantástico para discusiones avanzadas sobre programación. En concreto, lo que tú preguntas se habló en este hilo:

http://stackoverflow.com/questions/2905783/how-to-effectively-draw-on-desktop-in-c


05-Dec-2013 18:47
Marcos Paredes

Muchas gracias por su respuesta. Osea, que para ser novato, quiero empezar la casa por la ventana.....xD.
Barajaré las opciones que me propone. En concreto, su introducción a los videojuegos, que ya la había visto y me parece muy interesante.

Gracias de nuevo, estaré por aquí.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)