Para manejar diferentes cantidades de elementos en la pantalla del juego es necesario manejar listas de objetos. Si todos los objetos de la lista tienen la misma imagen, se puede guardar las coordenadas del objeto y su velocidad y al dibujarlos se usará el mismo sprite para todos los objetos. Si los objetos de la lista tienen diferente imagenes, es necesario guardar también la imagen en cada objeto (Texture2D). Dependiendo de cada juego puede ser necesario guardar datos adicionales en cada objeto (por ejemplo: si el objeto representa un personaje bueno o malo, etc). Creamos la clase ObjetosADibujar que contendrá la información necesaria para dibujar cada sprite en el juego, por ejemplo: › › › › coorX coorY velocidadX veocidadY Los atributos que contenga la clase pueden variar dependiendo de las necesidades de cada juego. class ObjetosADibujar { private int coorX; private int coorY; private int velX; private int velY; Al agregar una clase en la que se usarán elementos gráficos, es necesario agregar a la clase los siguientes using: using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; // constructor public ObjetosADibujar(int cX, int cY, int vX, int vY) { coorX = cX; coorY = cY; velX = vX; velY = vY; } // Propiedades public int CoorX { get { return coorX; } set {coorX = value; } } public int CoorY { get { return coorY; } set {coorY = value; } } public int VelX { get { return velX; } set { velX = value; } } public int VelY { get { return velY; } set { velY = value; } } } Dentro de las variables de instancia se crea la variable para manejar el ArrayList que guardará objetos de tipo ObjetosADibujar: › ArrayList listaObjetos = new ArrayList(); Se crea la variable listaObjetos de tipo ArrayList que guardará valores de tipo ObjetosADibujar En alguna parte del programa debes agregar objetos al ArrayList. › Si los objetos deben aparecer desde el inicio del programa, el lugar adecuado es Initialize. › Si van a aparecer dependiendo de una condición, entonces los agregas en el Update. // primero creas el objeto que vas a agregar ObjetosADibujar elemento = new ObjetosADibujar( coorX, coorY, velX, velY); // después lo agregas al ArrayList listaObjetos.Add(elemento); Nota que estos valores dependen de tu programa // Después de iniciar el proceso de dibujo spriteBatch.Begin(); // Dibujamos todos los elementos de la lista for (int cont = 0; cont < listaObjetos.Count; cont++) { ObjetosADibujar elem= (ObjetosADibujar)listaObjetos[cont]; } spriteBatch.Draw(imagen, new Rectangle(elem.CoorX, elem.CoorY, imagen.Width, imagen.Height), Color.White); … spriteBatch.End();