2015-12-31 7 views
0

Я в основном пытаюсь создать платформу с использованием Phaser. Я создал файл JSON в Tiled, и теперь я пытаюсь добавить его в мир. Я действительно пытался добавить его в течение последних трех часов, но не был успешным. Я просмотрел много сообщений и учебников, но ничего не сработало. Надеюсь, кто-то может помочь?Как включить tilemap (из плитки) в phaser

Это мой HTML:

<!DOCTYPE html><html> 

<head> 
    <title>Platformer</title> 
    <script type="text/javascript" src="phaser.js"></script> 
    <script type="text/javascript" src="Game.js"></script> 
</head> 

<body> 
    <div id="gameDiv"></div> 
</body> 

И мой Game.js:

var game = new Phaser.Game(800,600,Phaser.AUTO,"gameDiv",{ preload: preload, create: create, update: update }); 

function preload() { 
     game.load.tilemap("map","assets/LvlOneMap.json",null,Phaser.Tilemap.TILED_JSON); 
     game.load.image("tiles","assets/spritesheet_2.png"); 
    } 

var map; 
var layer; 

function create(){ 
    map = game.add.tilemap("map"); 
    map.addTilesetImage("Tiles","tiles"); 
    layer = map.createLayer("GroundLayer"); 
    layer.resizeWorld(); 
} 

function update() { 
    //Gameloop 
} 

Вот мой файл "LvlOneMap.json":

{ "height":10, 
"layers":[ 
     { 
     "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 137, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 153, 0, 0, 0, 0, 123, 123, 123, 123, 123, 123, 123, 123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 153, 0, 0, 0, 0, 153, 153, 155, 155, 155, 155, 155, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 153, 122, 122, 0, 0, 153, 153, 155, 155, 155, 155, 155, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 153, 153, 155, 155, 155, 155, 155, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 153, 153, 155, 155, 155, 155, 155, 155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, 123, 123, 123, 123, 123, 123, 153, 153, 155, 155, 155, 155, 155, 155, 0, 0, 0, 0, 0, 0, 123, 123, 123, 123, 123, 123, 153, 153, 153, 153, 153, 153, 153, 153, 155, 155, 155, 155, 155, 155, 155, 123, 123, 123, 123, 123, 123, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 153, 155, 155, 155, 155, 155], 
     "height":10, 
     "name":"BackgroundLayer", 
     "opacity":1, 
     "type":"tilelayer", 
     "visible":true, 
     "width":27, 
     "x":0, 
     "y":0 
     }, 
     { 
     "data":[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], 
     "height":10, 
     "name":"GroundLayer", 
     "opacity":1, 
     "type":"tilelayer", 
     "visible":true, 
     "width":27, 
     "x":0, 
     "y":0 
     }], 
"nextobjectid":1, 
"orientation":"orthogonal", 
"properties": 
    { 

    }, 
"renderorder":"right-down", 
"tileheight":21, 
"tilesets":[ 
     { 
     "firstgid":1, 
     "image":"spritesheet_2.png", 
     "imageheight":372, 
     "imagewidth":694, 
     "margin":3, 
     "name":"Tiles", 
     "properties": 
      { 

      }, 
     "spacing":2, 
     "tilecount":480, 
     "tileheight":21, 
     "tilewidth":21, 
     "transparentcolor":"#4a698c" 
     }], 
"tilewidth":21, 
"version":1, 
"width":27 
} 

Следует также отметить, что имя слоя совпадает с именем слоя в Tiled, а для параметра Tile Layer Format установлено значение CSV.

ответ

2

Если я правильно читаю JSON, GroundLayer не имеет в наличии никаких объектов (все 0s для объекта данных).

Ваш код в противном случае соответствует рабочему примеру, с которым я сравнивал его, поэтому я бы рекомендовал вам проверить данные слоя.

Попробуйте переключить layer = map.createLayer("GroundLayer"); на layer = map.createLayer("BackgroundLayer");, чтобы увидеть, отображается ли слой, поскольку, как представляется, этот слой имеет в нем фактические данные.

+0

Должно быть, я случайно их перепутал, спасибо вам большое! @James Skemp –

+0

Так оно и было? Потрясающие; рад, что это было просто! –