Ver Mensaje Individual
  #3 (permalink)  
Antiguo 26/01/2016, 06:09
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 6 meses
Puntos: 204
Respuesta: Cuerpo de la viborita en letras (Juego) - C#

La colleja para empezar. Este foro es de C/C++. Para cuestiones de C# deberías acudir al foro de .NET.

Tener una clase llamada Circulos que realmente gestiona un único objeto en la pantalla (que, como bien dices pretendes que no sea ni tan siquiera un círculo es algo que tienes que evitar. Nombes de clases, métodos y variables coherentes a la utilidad que van a satisfacer mejoran la lectura del código y evitan errores.

Una posible solución pasa porque la clase Circulos almacenase una imagen. A la hora de pintar el objeto bastaría con recuperar la imagen asociada. Aun así la gestión de las imágenes podría ser un poco tortuosa, ya que ahora mismo utilizas este objeto para ubicar la comida y para pintar la serpiente.

El problema que le veo a pintar cada segmento de la serpiente con un texto es que el texto, si esperas que sea legible, no lo puedes comprimir todo lo que tu quieras y has de ser consciente que el texto ha de entrar en el hueco que ahora ocupa cada segmento de la serpiente. Quizás sería más realizable que cada segmento estuviese representado por una letra del texto.

Yo personalmente estructuraría un poco más el código, delegar toda la labor de pintado en el evento OnPaint del Form me parece excesivo, creo que cada objeto de la escena debería ser capaz de pintarse por si solo. ¿Por qué? El concepto detrás de esta idea se llama aislamiento y para no enrollarnos demasiado va encaminado a que puedas enviar a la escena lo que te de la gana sin tener que modificar el motor gráfico (sí, ahora mismo el evento OnPaint hace las veces de motor gráfico de tu juego). Imagínate que añades varios tipos de comida... te tocará modificar el evento OnPaint para que sepa pintar cada uno de ellos... no parece una solución muy elegante ni tampoco escalable.

Un saludo.
__________________
La ayuda se paga con esfuerzo o con dinero. Si no estás dispuesto a esforzarte y quieres que te hagan los deberes pide presupuesto, al menos así ahorrarás tiempo.