Consolidate all the tile data into one giant mega array

Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
master
sigonasr2, Sig, Sigo 2 years ago
parent 7d6a461c07
commit d75e381d65
  1. BIN
      C++ProjectTemplate
  2. 10
      TMXParser.h
  3. 30
      main.cpp
  4. 2
      sig

Binary file not shown.

@ -1,8 +1,9 @@
#include "pixelGameEngine.h"
#include <strstream>
using namespace olc;
#include <sstream>
#include <fstream>
#include <map>
#include <vector>
#include <iostream>
struct XMLTag{
std::string tag;
@ -39,6 +40,7 @@ struct XMLTag{
struct LayerTag{
XMLTag tag;
public:
std::vector<std::vector<int>> tiles;
std::string str() {
std::string displayStr=tag.tag+"\n"+tag.FormatTagData(tag.data);

@ -1,28 +1,32 @@
#define OLC_PGE_APPLICATION
#include "pixelGameEngine.h"
#include <strstream>
#include "TMXParser.h"
using namespace olc;
int main(){
TMXParser parser("00_test_room.tmx");
Map mData = parser.GetData();
XMLTag mapTag = mData.MapData;
double version = mapTag.GetDouble("version");
int width = mapTag.GetInteger("width");
int height = mapTag.GetInteger("height");
bool isInfinite = mapTag.GetBool("infinite");
std::cout<<version<<": "<<width<<","<<height<<","<<isInfinite;
LayerTag layerTag = mData.LayerData[0];
XMLTag layer0Tag = layerTag.tag;
int layerID=layer0Tag.GetInteger("id");
int TOTAL_LAYER_COUNT = mapTag.GetInteger("nextlayerid");
int X_TILES_COUNT = mapTag.GetInteger("width");
int Y_TILES_COUNT = mapTag.GetInteger("height");
std::cout<<"\n"<<layerID;
std::vector<std::vector<std::vector<int>>> tileData;
for (int layer=0;layer<TOTAL_LAYER_COUNT-1;layer++) {
std::vector<std::vector<int>> mapTileGrid;
for (int y=0;y<Y_TILES_COUNT;y++) {
std::vector<int> row;
for (int x=0;x<X_TILES_COUNT;x++) {
row.push_back(mData.LayerData[layer].tiles[y][x]);
}
mapTileGrid.push_back(row);
}
tileData.push_back(mapTileGrid);
}
std::cout<<"\n"<<layerTag.tiles[8][6];
printf("Layer 6, Row 116, Col 44 (X:43,Y:117) - %d",tileData[4][116][44]);
return -1;
}

2
sig

@ -3,7 +3,7 @@ export AUTO_UPDATE=true
source utils/define.sh
define PROJECT_NAME "C++ProjectTemplate"
define CUSTOM_PARAMS "-std=c++17 -lX11 -lGL -lpthread -lpng -lstdc++fs -lpulse -lpulse-simple"
define CUSTOM_PARAMS "-std=c++17 "
define LANGUAGE "C++"
source utils/main.sh

Loading…
Cancel
Save