#javascript #phaser-framework #tiled
#javascript #фазер-фреймворк #плиточный
Вопрос:
Я разрабатываю одно приложение (платформу), где у меня 10 пользователей (возможно, со временем это увеличится). Я создал одну страницу входа и создал одну карту, используя tiled (фреймворк 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();
}
Комментарии:
1. Какой код у вас есть на данный момент? Поскольку в настоящее время это сформулировано, я думаю, что этот вопрос будет помечен как слишком широкий для этого сайта.
2. @JamesSkemp Пожалуйста, проверьте мой обновленный вопрос.
Ответ №1:
Проблема в том, что если все будут перенаправлены на одну и ту же страницу после входа в систему, то все пользователи увидят одну и ту же карту, расположенную в разделе «.. / tileMap /background.json».
Решением было бы каким-то образом соединить карту с пользователем, в примере вы можете создать такой массив:
var maps= {};
maps['bob'] = '../tileMap/backgroundBob.json';
maps['joe'] = '../tileMap/backgroundJoe.json';
Затем вы можете создать глобальную переменную (но для этого определенно есть лучший способ, возможно, используя значение входа из файла cookie при инициализации phaser) для tilemapPath и после аутентификации пользователя сделать что-то вроде:
tilemapPath = maps[login];
И загрузите tilemap с:
game.load.tilemap('map',tilemapPath, null, Phaser.Tilemap.TILED_JSON);
Надеюсь, это вам как-нибудь поможет.
Комментарии:
1. Спасибо. Я сделал то же самое, что и выше, и его работа