在Phaser中反转y轴

时间:2015-01-22 05:25:51

标签: phaser-framework

我正在建立一个双人棋盘游戏。我想从当前玩家的角度展示棋盘。因此,如果我是棋盘“底部”的玩家,我想要反转y轴并将原点移动到画布的左下角。同样也可以转换鼠标点击量。我只想影响精灵的位置,而不是他们的旋转 - 我总是希望他们指向上方。我没有看到使用Phaser的简单方法。有吗?

我尝试world.scale.setTo(1, -1)然后world.y = -world.height,但修改world.y似乎没有做任何事情。

2 个答案:

答案 0 :(得分:2)

我有一个类似的问题,并没有看到任何令人满意的答案,但仔细查看来源,我想出了这段代码,我在create函数中找到了:

game.world.transformCallback = function(worldTransform) {
  worldTransform.d  = -1;
  worldTransform.ty = game.height;
};

我不知道这是否会混淆一些事情,但它似乎适用于我的初步测试。我确实看到传递到x的{​​{1}}和y值现在用于rect的左下角,而不是左上角。这是有道理的,但需要注意。 : - )

编辑:看起来文字也是倒置的。 : - /

答案 1 :(得分:1)

不是直接的移相器功能但是我建议您运行游戏中的世界坐标与移相器相同,只需交换显示坐标,而不是将棋盘游戏块放在说

queen.position.set( 10, 10 );

它将是

queen.position.set( 10, worldHeight - 10 );

从这里开始,围绕精灵的位置构建一个包装器,因此它知道镜像:

placePiece( sprite, x, y, direction );

在此功能中,检查方向以查看是否应翻转坐标。