在 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()
的 x
和 y
值现在用于矩形的 bottom-left,而不是 top-左边。这是有道理的,但需要注意。 :-)
编辑:看起来文本也被倒置了。 :-/
我正在构建一个两人棋盘游戏。我想从当前玩家的角度显示棋盘。因此,如果我是棋盘 "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()
的 x
和 y
值现在用于矩形的 bottom-left,而不是 top-左边。这是有道理的,但需要注意。 :-)
编辑:看起来文本也被倒置了。 :-/