Level class created and gravity editable.

This commit is contained in:
Mal
2020-02-16 00:53:03 +01:00
parent cec3cc726f
commit a7ecbf9d2e
20 changed files with 277 additions and 133 deletions

View File

@@ -85,18 +85,14 @@ export default class Terrain
tr.appendChild(td);
}
console.log(index);
if (index === undefined || index >= this.tilesY - 1) {
this.fields.push(row);
this.htmlElement.appendChild(tr);
} else if (index === 0) {
this.fields = [row].concat(this.fields);
console.log(this.fields[0]);
this.htmlElement.insertBefore(tr, this.htmlElement.childNodes[index]);
} else {
this.fields = this.fields.slice(0, index).concat([row]).concat(this.fields.slice(index));
console.log(this.fields[1]);
this.htmlElement.insertBefore(tr, this.htmlElement.childNodes[index]);
}
}
@@ -185,20 +181,20 @@ export default class Terrain
return this.targetTileX !== undefined && this.targetTileY !== undefined;
}
static createFromJson(terrainData)
static createFromJson(levelData)
{
let graphicSet = GraphicSet[terrainData.tileset];
let graphicSet = GraphicSet[levelData.tileset];
let tileset = new Tileset(terrainData.tileset);
let terrain = new Terrain(tileset, terrainData.columns, terrainData.rows, graphicSet.backgroundColor);
let tileset = new Tileset(levelData.tileset);
let terrain = new Terrain(tileset, levelData.columns, levelData.rows, graphicSet.backgroundColor);
for (let y = 0; y < terrainData.rows; y++) {
for (let x = 0; x < terrainData.columns; x++) {
terrain.setFieldIndex(x, y, terrainData.matrix[y][x]);
for (let y = 0; y < levelData.rows; y++) {
for (let x = 0; x < levelData.columns; x++) {
terrain.setFieldIndex(x, y, levelData.matrix[y][x]);
if (x === terrainData.startX && y === terrainData.startY) {
if (x === levelData.startX && y === levelData.startY) {
terrain.setEntrancePoint(x, y);
} else if (x === terrainData.targetX && y === terrainData.targetY) {
} else if (x === levelData.targetX && y === levelData.targetY) {
terrain.setTargetPoint(x, y);
}
}