Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'use strict';
- /* Room object
- This object contains the information about a room in the game.
- tileset is a path to tileset which has possible nonwall collidable assets, which are present in the room.
- tileData is a path to a tilemap generated wih Tiled.
- */
- function Room (game, tileset, tileData, moveDirection, moveSpeed)
- {
- var self = this;
- var game = game;
- var tileset = tileset;
- var tileData = tileData;
- var myloader = new Phaser.Loader(game);
- self.map;
- var backgroundLayer;
- var mycallback;
- self.layerGroup = game.add.group();
- self.moveDirection = moveDirection;
- self.moveSpeed = moveSpeed;
- self.onceScaled = false;
- var scale = () =>
- {
- self.layerGroup.forEach((layer) => {layer.resize(1920, 1080);}, this, true);
- self.layerGroup.forEach((layer) => { layer.scale.x = scalingFactors.x; layer.scale.y = scalingFactors.y; });
- self.onceScaled = true;
- };
- self.preload = (callback) =>
- {
- mycallback = callback;
- if(!game.cache.checkImageKey(tileset))
- {
- myloader.image(tileset, "assets/maps/tiles/" + tileset);
- }
- if(!game.cache.checkJSONKey(tileData))
- {
- myloader.tilemap(tileData, "assets/maps/JSON/collisionTestMap.json", null, Phaser.Tilemap.TILED_JSON);
- }
- myloader.onLoadComplete.addOnce(create);
- myloader.start();
- };
- var create = () =>
- {
- self.map = game.add.tilemap(tileData, 24, 15);
- console.log(self.map.width);
- console.log(self.map.height);
- console.log(self.map.tileWidth);
- console.log(self.map.tileHeight);
- self.map.addTilesetImage(tileset, tileset);
- backgroundLayer = self.map.createLayer('backgroundLayer');
- self.layerGroup.add(backgroundLayer);
- backgroundLayer.debug = true;
- self.map.setCollisionBetween(1, 10000, true, 'backgroundLayer');
- self.layerGroup.setAll('fixedToCamera', false);
- mycallback();
- };
- self.moveTo = (x, y) =>
- {
- // This is where the problem resides
- self.layerGroup.forEach((layer) => {layer.reset(x, y); layer.resetTilesetCache();}, this, true);
- console.log('backgroudLayer .worldPos.x :' + backgroundLayer.worldPosition.x + "\n" +
- '.x : ' + backgroundLayer.x + '\n' +
- '.position.x: ' + backgroundLayer.position.x); // .x and position.x are updated correctly, but worldPosition.x is stubbornly always 0
- };
- self.updateScaling = () =>
- {
- scale();
- };
- }
Advertisement
Add Comment
Please, Sign In to add comment