我是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中的每个矩形命名。
答案 0 :(得分:0)
如果您的精灵结束并使用
,我会尝试使用透明图像作为您要检查的区域if(sprite1.overlap(transparentImage)){
//do something
}