added items to map

This commit is contained in:
Jeena 2014-02-10 12:05:10 +01:00
parent a0f3ae01d8
commit 6c78c750f0
5 changed files with 67 additions and 32 deletions

View file

@ -17,21 +17,12 @@ define([
TiledLevel.prototype = Object.create(Parent.prototype);
TiledLevel.prototype.createTiles = function (levelData) {
this.levelData = levelData;
if (!levelData) {
TiledLevel.prototype.createTiles = function () {
if (!this.levelData) {
throw "Level: Can't create level, nothing found";
}
var collisionLayer = null;
for (var i = 0; i < levelData.layers.length; i++) {
if(levelData.layers[i].name === "collision") {
collisionLayer = levelData.layers[i];
break;
}
}
var collisionLayer = this.getLayer("collision");
if(collisionLayer) {
@ -64,6 +55,28 @@ define([
}
}
TiledLevel.prototype.createItems = function() {
var objects = this.getLayer("items").objects;
for (var i = 0; i < objects.length; i++) {
var object = objects[i];
var options = object.properties;
options.x = object.x * Settings.OBJECT_RATIO;
options.y = object.y * Settings.OBJECT_RATIO;
var item;
var uid = "item-" + i;
switch(options.type) {
case 'skateboard':
item = new Skateboard(this.engine, uid, options);
break;
default:
item = new Item(this.engine, uid, options);
break
}
this.gameObjects.animated.push(item);
};
};
TiledLevel.prototype.getTileImagePath = function(gid) {
//console.log(this.levelData.tilesets)
for (var i = 0; i < this.levelData.tilesets.length; i++) {
@ -76,24 +89,31 @@ define([
}
TiledLevel.prototype.getRandomSpawnPoint = function() {
if(!this.levelData) {
return Parent.prototype.getRandomSpawnPoint.call(this);
} else {
var spawnLayer = this.getLayer("spawnpoints");
var size = spawnLayer.objects.length;
var object = spawnLayer.objects[parseInt(Math.random() * (size -1), 10)];
return {
x: object.x * Settings.OBJECT_RATIO,
y: object.y * Settings.OBJECT_RATIO
}
}
};
TiledLevel.prototype.getLayer = function(name) {
for (var i = 0; i < this.levelData.layers.length; i++) {
if(this.levelData.layers[i].name === "spawnpoints") {
var spawnLayer = this.levelData.layers[i];
var size = spawnLayer.objects.length;
var object = spawnLayer.objects[parseInt(Math.random() * (size -1), 10)];
return {
x: object.x,
y: object.y
}
if(this.levelData.layers[i].name === name) {
return this.levelData.layers[i];
}
}
throw "Layer '" + name + "' not found.";
};
return TiledLevel;