教你web端横屏改为逆时针旋转90度

// 横屏模式修改为逆时针旋转90度
var __initFrameSize__ = cc.view._initFrameSize;
cc.view._initFrameSize = function () {
    __initFrameSize__.apply(cc.view, arguments);

    if (cc.view._isRotated && !cc.sys.isNative) {
        cc.container.style['-webkit-transform'] = 'rotate(-90deg)';
        cc.container.style.transform = 'rotate(-90deg)';
        setTimeout(function () {
            cc.container.style['margin'] = cc.view._frameSize.width + 'px 0px 0px';
        });
        cc.view.convertToLocationInView = function (tx, ty, relatedPos) {
            var x = this._devicePixelRatio * (tx - relatedPos.left);
            var y = this._devicePixelRatio * (relatedPos.top + relatedPos.height - ty);
            return this._isRotated ? { x: y, y: cc.view._viewPortRect.height - x } : { x: x, y: y };
        };
    } else if (!cc.view._isRotated && !cc.sys.isNative) {
        cc.view.convertToLocationInView = function (tx, ty, relatedPos) {
            var x = this._devicePixelRatio * (tx - relatedPos.left);
            var y = this._devicePixelRatio * (relatedPos.top + relatedPos.height - ty);
            return this._isRotated ? { x: this._viewPortRect.width - y, y: x } : { x: x, y: y };
        };
    }
};

复制粘贴,别的不用干,你的项目就成逆时针旋转的了(没测试过,来帮我踩踩坑吧:wink:)

13赞

坐标是反的.

button 在屏幕左边, 需要点击右边才能响应事件

噢,那我改改

弄好了

1赞

还是不对, 不过我改好了, 应该是:
return this.isRotated ? { x: y , y: cc.view.viewPortRect.height - x } : { x: x, y: y };

按钮时间不准了

额,我不也是这么写的么?

有不对么?比如说

按钮事件不起作用了?按钮点击的位置和原来不一样了

@向前进 方便微信吗

如按钮原来在正中位置,但是需要点击屏幕左边一点才能点击到

你给我各链接,我看看

qq1076559139

                return this._isRotated ? { x:  y  , y: cc.view._viewPortRect.height - x } : { x: x, y: y };

复制错了. 是这个这个.

我们游戏是横竖屏来回切换的,竖屏用楼主的方法切换到横屏目前完美,但是真机上从横屏再切换回竖屏,出现上面部分区域空白的问题,拖动界面后能恢复正常,这个问题该如何解决呢

感谢作者与参与分享的同学! 帮了大忙了

可以是可以,但是需要重新加载场景也就是刷新本场景才可以实现? 什么问题导致的? 加载顺序问题么?

新建个脚本,里面东西统统删除,把代码复制进去

感谢楼主, 稍作修改就完美解决了我的问题了.