Pregunta

Necesito crear una aplicación en .NET CF con formularios diferentes/únicos con muchos dibujos/animaciones en cada formulario. Preferiría tener una única función de actualización [la mía para la administración del estado, etc.] para poder administrar los diferentes estados, para que mi [Código de juego J2ME] funcione sin muchos cambios. He llegado a algunos escenarios posibles.¿Cuál de los dos será perfecto?

  1. Tenga un formulario único y agregue/elimine los controles manualmente, luego use cualquiera de los trucos del bucle del juego.
  2. Cree diferentes formularios con controles y llame a update y application.doEvents() en el hilo principal.[ while(isAppRunning){ UPDATE() Application.DoEvents() }
  3. Cree una actualización: bucle de pintura en cada uno de los formularios según sea necesario.
  4. Cualquier otra idea.

Por favor dame una sugerencia sobre esto.

¿Fue útil?

Solución

Si es un juego, entonces eliminaría la mayoría de los formularios y trabajaría con lo esencial, trabajaría con un mapa de bits si es posible y lo renderizaría anulando el método de pintura del formulario principal o un control que resida dentro de él (tal vez un panel).Eso le dará un mejor rendimiento.

El problema principal es que el marco compacto no está realmente diseñado para mucha diversión en la interfaz de usuario; no obtienes doble buffer gratis como en el marco completo, la transparencia adecuada es una mierda que tiene que ver con los controles de WinForm y si te aferras a Si continúas el hilo de la interfaz de usuario durante demasiado tiempo, obtendrás graves problemas de renderizado.¡Diablos, incluso podrías conseguirlos si haces demasiado en hilos de fondo!:O

Nunca obtendrás un rendimiento óptimo al llamar explícitamente a Application.DoEvents; mi regla general es usarlo solo al solucionar problemas o escribir pequeños trucos en la interfaz de usuario.

Podría valer la pena colocar el juego en un hilo de fondo y luego llamar a .Invoke en el control para volver al hilo principal de la interfaz de usuario para actualizar su pantalla, dejando a la interfaz de usuario con suficiente tiempo para responder y al mismo tiempo manejar la entrada del usuario.La entrada del usuario es otra razón por la que evito los controles normales de Winform, ya que los dispositivos móviles generalmente no tienen muchas claves, es muy útil poder reasignarlas, por lo que generalmente evito cosas como cuadros de texto que tienen eventos/respuestas clave preestablecidas.

También evitaría el uso de diferentes formularios, ya que mostrar un nuevo formulario puede proporcionar una pausa sutil. Generalmente cambio los controles a un formulario principal para evitar este problema al escribir software empresarial.

Al final del día, probablemente valga la pena experimentar con varias técnicas para ver cuál funciona mejor.También vea si puede obtener algún consejo de personas que desarrollan juegos en CF, ya que generalmente solo hago software comercial.

¡HH!

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