【问题标题】:Invert y axis in Phaser在 Phaser 中反转 y 轴
【发布时间】:2015-08-31 01:34:48
【问题描述】:

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

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

【问题讨论】:

    标签: phaser-framework


    【解决方案1】:

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

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

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

    编辑:看起来文本也被反转了。 :-/

    【讨论】:

      【解决方案2】:

      不是直接的移相器功能,但我建议您运行游戏中的世界坐标与移相器相同,并简单地交换显示坐标,因此不要将棋盘游戏棋子放在上面

      queen.position.set( 10, 10 );
      

      应该是

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

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

      placePiece( sprite, x, y, direction );
      

      在这个函数中,检查方向,看坐标是否应该翻转。

      【讨论】:

        猜你喜欢
        • 2017-07-30
        • 2011-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多