Uso del ContentManager dentro de un GameComponent

El ContentManager es la entidad encargada de gestionar la carga de archivos externos  tales como modelos, imágenes , fuentes, etc. Por defecto, cuando nosotros creamos un nuevo Game Proyect para XNA desde nuestro Visual Express, la clase Game1.cs contendrá declarado por defecto un ContentManager.

Si queremos que nuestros GameComponent cargue recursos, necesitaremos usar a dicho gestor. Las preguntas que nos surgen son ¿cómo recupero o accedo al que ya tiene mi juego sin crear uno nuevo? ¿O por qué no crearnos uno nuevo para cada GameComponent y que el juego principal mantenga  el suyo para lo recursos generales? ¿Se podría hacer algo parecido a lo que hacemos con la entidad  GraphicsDeviceManager  desde un GameComponent:
   IGraphicsDeviceService graphicsDeviceService = (IGraphicsDeviceService)Game.Services.GetService(typeof(IGraphicsDeviceService)); ??

 Esto mismo le preguntaba a Javier Cantón.

La mejor solución que me comentaba nuestro Gurú de los video juegos sería pasarle el ContentManager del Game principal a nuestro GameComponent como una propiedad, de forma que no instanciemos nuevos ContentManager en el  interior de cada uno de estos, realizando un uso más eficaz de la memoria.

La otra solución eficiente sería obtenerlo de forma similar al GraphicsDeviceManager, pero eso no es posible. (Si fuera posible, ya estais tardando en escribir!!)
 

Un saludo.

Ramón Tébar Bueno – Albacete DotNetClub
Publicado 04 marzo 07 07:04 por rtebar

Comentarios

Aún no ha hecho nadie ningún comentario. Escribe alguno y sé el primero :P
No se permiten comentarios de usuarios anónimos

About rtebar

Microsoft Dynamics CRM Developer and Consultant in Alfapeople Ltd (London)

Search

Go

Sindicación