在 Phaser 中反转 y 轴

Invert y axis in Phaser

我正在构建一个两人棋盘游戏。我想从当前玩家的角度显示棋盘。因此,如果我是棋盘 "bottom" 处的玩家,我想反转 y 轴并将原点移动到 canvas 的左下角。也可以转换鼠标点击。我只想影响精灵的位置,而不是它们的旋转——我总是希望它们朝上。我没有看到使用 Phaser 执行此操作的简单方法。有吗?

我试过 world.scale.setTo(1, -1) 然后 world.y = -world.height,但是修改 world.y 似乎没有任何作用。

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

queen.position.set( 10, 10 );

会是

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

从这里开始,围绕您的 sprite 放置构建一个包装器,以便它了解镜像:

placePiece( sprite, x, y, direction );

并且在此函数中,检查方向以查看是否应翻转坐标。

我有一个类似的问题,但没有看到任何令人满意的答案,但通过查看源代码,我想出了我在 create 函数中插入的代码:

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

我不知道这是否会把事情搞砸,但它似乎适用于我的初始测试。我确实看到传递给 drawRect()xy 值现在用于矩形的 bottom-left,而不是 top-左边。这是有道理的,但需要注意。 :-)

编辑:看起来文本也被倒置了。 :-/