Phaser.io - 从Tiled

时间:2015-12-27 04:21:21

标签: phaser-framework tiled

我是phaser的新手,在过去的几天里,我一直试图制作一个非常简单的游戏,平台游戏风格,玩家必须先导航到某些区域才能退出水平。

我已经掌握了基础知识,但现在我似乎无法弄清楚如何检查玩家是否在这些区域。

到目前为止,代码的相关部分如下:

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

function preload() {
  game.load.tilemap("questMap", "assets/quest.json", null, Phaser.Tilemap.TILED_JSON);
  game.load.image("tilesheet", "assets/tilesheet.png");
  game.load.image("npc", "assets/npc.png");
  game.load.spritesheet("player", "assets/player.png", 64, 64);
}


var map;
var tileset;

var groundBg;
var props;
var houses;
var houseProps;
var npc;
var ground;
var areas;

var player;


function create() {

  game.physics.startSystem(Phaser.Physics.ARCADE);

  game.stage.backgroundColor = "#A8DBFF";

  map = game.add.tilemap("questMap");
  map.addTilesetImage("tilesheet");
  map.addTilesetImage("npc");


  ground = map.createLayer("ground");
  groundBg = map.createLayer("groundbg");
  props = map.createLayer("props");
  houses = map.createLayer("houses");
  houseProps = map.createLayer("houseprops");
  npc = map.createLayer("npc");

  map.setCollisionBetween(1, 5000);

  ground.resizeWorld();

不太漂亮,我知道。

我用瓷砖创建了地图,并且有许多小道具和装饰瓷砖,因此多个" map.createLayer()"调用。唯一有碰撞的是地面层

现在,在我的Tiled文件中,我已经创建了一个Object图层,并在我想要检查玩家是否在的区域上绘制了小矩形。我认为这将是一个简单的过程,但我可以&# 39;似乎弄清楚如何将这些区域加载到Phaser中,然后检查玩家是否在界限范围内。

谷歌搜索给了我一些结果,但似乎都没有,因为它们通常涵盖了如何向对象添加精灵,在这种情况下不适用

我只需要存在小区域并检查玩家是否在那里。我还通过自定义属性选项卡为Tiled中的每个矩形命名。

1 个答案:

答案 0 :(得分:0)

如果您的精灵结束并使用

,我会尝试使用透明图像作为您要检查的区域
if(sprite1.overlap(transparentImage)){
    //do something
}