| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- // Atomic Script
- LevelParser = function(tileMap) {
- this.tileMap = tileMap;
- this.entities = [];
- this.parseEntities();
- }
- LevelParser.prototype = {
- parseEntities: function() {
- entityLayer = this.tileMap.getLayerByName("Entities");
- if (entityLayer) {
- for (var i = 0; i < entityLayer.numObjects; i++) {
- var o = entityLayer.getObject(i);
- var onode = entityLayer.getObjectNode(i);
- entity = {};
- if (o.type == "PlayerSpawn") {
- entity.type = "PlayerSpawn";
- entity.position = onode.position2D;
- }
- if (entity.type)
- this.entities.push(entity);
- }
- }
- },
- getEntity: function(type) {
- for (var i = 0; i < this.entities.length; i++)
- if (this.entities[i].type == type)
- return this.entities[i];
- return null;
- },
- getSpawnpoint: function(type) {
- var pos = [0, 0];
- var entity = this.getEntity("PlayerSpawn");
- return entity ? entity.position : pos;
- },
- createPhysics: function(tileMap, tmxFile) {
- physicsLayer = tileMap.getLayerByName("Physics");
- if (physicsLayer) {
- for (var i = 0; i < physicsLayer.numObjects; i++) {
- var o = physicsLayer.getObject(i);
- var onode = physicsLayer.getObjectNode(i);
- var group = tmxFile.getTileObjectGroup(o.tileGid);
- var obody = null;
- if (group) {
- for (var j = 0; j < group.numObjects; j++) {
- var go = group.getObject(j);
- if (go.validCollisionShape()) {
- if (!obody) {
- obody = onode.createComponent("RigidBody2D");
- obody.bodyType = Atomic.BT_DYNAMIC;
- obody.awake = false;
- }
- var shape = go.createCollisionShape(onode);
- shape.density = 1.0;
- shape.friction = 1.0;
- shape.restitution = .1;
- }
- }
- }
- }
- }
- }
- };
|