XNA, wie speichern und zeichnen Sie eine 2d-Karte?

Ich habe ein problem und ich bin nicht sicher, wie der Ansatz der Lösung.
Ich brauche ein 2D-map-editor für mein XNA-app., mit eine bestimmte Anzahl von Fliesen.
Sagen eine Karte 50x100 Fliesen.

Ich bin nicht sicher, was an der Struktur der Daten für die map -, Fliesen-und wie um es zu speichern auf der Festplatte für die spätere Verladung.

Was ich jetzt denke ist dies. Ich werde speichern, die Karte in einer text-Datei, etwa so:

//x, y, ground_type, object_type
0, 0, 1, 0
0, 1, 2, 1

wobei 0=Gras, 1=Fluss etcc für Boden-Gelände, und 0=Nichts, 1=Wand für Objekt-Typen.

Dann habe ich ein Spiel-Komponente Map-Klasse, die Lesen können, die Datei oder erstellen Sie eine neue von Grund auf neu:

class Map : DrawableGameComponent {
      //These are things like grass, whater, sand...
      Tile ground_tiles[,];
      //These are things like walls that can be destroyed
      Tile object_tiles[,];

      public Map(Game game, String filepath){
          for line in open(filepath){
               //Set the x,y tile to a new tile
               ground_tiles[line[0], line[1]] = new Tile(line[3])
               object_tiles[line[0], line[1]] = new Tile(line[4])
          }
      }

      public Map(Game game, int width, int heigth){
        //constructor
        init_map()
      }
      private void init_map(){
          //initialize all the ground_tiles
          //to "grass"
          for i,j width, heigth{
              ground_tiles[i,j] = new Tile(TILE.GRASS)
          }


      public override Draw(game_time){
            for tile in tiles: 
                sprite_batch.draw(tile.texture, tile.x, tile.y etc..)

      }

Meine Tile-Klasse wird es wohl NICHT sein ein Spiel-Komponente.
Ich bin noch nicht ganz sicher, wie Sie Sie zu behandeln Kollisionserkennung zum Beispiel zwischen einer Kugel, die aus der Spieler mit dem map-Objekt. Sollte das behandelt werden, indem Sie die Map-Klasse oder eine Art super-Manager-Klasse?

Alle Hinweise sind willkommen.
Danke!

InformationsquelleAutor drozzy | 2009-04-20

Schreibe einen Kommentar