我正在开发一个应用程序(平台),我有10个用户(可能会随着时间的推移而增加)。我创建了一个登录页面并使用平铺(phaser框架)创建了一个地图。但是这个地图现在对所有用户都是一样的,我想要的是为每个用户创建一个单独的地图,并在登录后显示。请给我一些建议,以便至少我可以试试。或者让我对这个实现有所了解。
以下代码用于拼贴图解析。
var game = new Phaser.Game(450, 300, Phaser.CANVAS, 'phaser', { preload: preload, create: create, update: update, render: render });
function preload() {
game.load.tilemap('map', '../tileMap/background.json', null, Phaser.Tilemap.TILED_JSON);
game.load.image('tile2', '../tileMap/floor2.png');
game.load.image('player','../tileMap/bot2.png');
}
var map;
var layer;
function create() {
map = game.add.tilemap('map');
map.addTilesetImage('floor2','tile2');
layer = map.createLayer('Tile Layer 1');
layer.resizeWorld();
}
答案 0 :(得分:1)
问题是如果每个人在登录后都被重定向到同一页面,那么所有用户都会看到位于' ../ tileMap / background.json'下的相同地图。
解决方案是以某种方式将地图与用户连接,例如,您可以创建类似的数组:
var maps= {};
maps['bob'] = '../tileMap/backgroundBob.json';
maps['joe'] = '../tileMap/backgroundJoe.json';
然后你可以为tilemapPath创建全局变量(但是它有更好的方法,可能是使用来自cookie的登录值),并且在验证用户之后执行以下操作:
tilemapPath = maps[login];
使用以下方法加载tilemap:
game.load.tilemap('map',tilemapPath, null, Phaser.Tilemap.TILED_JSON);
希望它能为你提供帮助。