Pregunta

Hola, quiero escribir un juego con una forma de juego principal y muchas otras formas normales.¿Cuál es la mejor manera de gestionar el ciclo de actualización y pintura en ese caso?

¿Debería anularse solo el bucle de pintura del formulario del juego?¿O debería hacer un evento application.do() en el método principal?

Por favor guíame con respecto a esto.Soy nuevo en el mundo de Windows Forms.

¿Fue útil?

Solución

Su hilo lógico debe estar separado del formulario, por lo que no necesitará DoEvents().Si está utilizando GDI+, entonces debe forzar una Actualización() en un bucle.Windows Forms no funciona muy bien con el doble buffer, por lo que dependiendo de qué tan sofisticados sean sus gráficos, puede tener algunas dificultades con el parpadeo.

Mi sugerencia es considerar el uso de Biblioteca administrada por DirectX.Hay mucho que aprender, pero te brinda todo lo que necesitas.

EDITAR:He estado leyendo recientemente sobre WPF, que parece una plataforma mucho mejor para juegos simples a moderadamente complejos, porque proporciona una API de nivel mucho más alto que la Biblioteca administrada por DirectX.Sin embargo, probablemente tenga limitaciones de rendimiento y flexibilidad para juegos más complejos.

Otros consejos

El cuerpo de la pregunta no menciona Compact Framework, solo Winforms.Esta es prácticamente la respuesta aceptada para Winforms de Tom Miller (Xna Game Studio y chico de Managed DirectX de Microsoft):

Bucle de juego de Winforms

@Rico B:El bucle del juego es independiente de cómo se realiza el renderizado (DirectX, MDX, GDI+)

Si estás creando un juego, deberías investigar DirectX, OpenGL, o XNA.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top