目前横屏游戏的解决方案
目前市面横屏游戏、活动页面都采用的是:屏幕竖起来时,提示需要手动旋转屏幕,或者就干脆不让玩。这两种处理方案都不太好,因为好多用户都不会旋转屏幕,就算会,操作也很麻烦,最佳的解决方案是当手机竖起来时,画面是横过来的,这样用户不用手动解锁就可以体验横屏游戏了,效果应该是这样:
实现步骤
第一步:设置stage的宽高。对于横屏游戏来说,我们首先得先把宽高取反,这个就不解释了,像这样
let width = 1334
let height = 646
constructor() {
super(width, height, Phaser.CANVAS, 'game')
}
第二步:取得屏幕的方向,包括初始和旋转时,都要取到准确的方向,代码如下:
// 屏幕的方向1:竖屏;一:横屏(为啥这么定义?因为总是搞混横竖那两个单词,干脆用象形吧)
let direction = '1'
function getDirection() {
switch (window.orientation) {
case 0:
case 180:
direction = '1'
break;
case -90:
case 90:
direction = '一'
break;
}
}
第三步:渲染,代码如下:
Phaser.World.prototype.displayObjectUpdateTransform = function () {
if (direction == '1') {
game.scale.setGameSize(height, width)
this.x = game.camera.y + game.width;
this.y = -game.camera.x;
this.rotation = Phaser.Math.degToRad(Phaser.Math.wrapAngle(90));
} else {
game.scale.setGameSize(width, height)
this.x = -game.camera.x;
this.y = -game.camera.y;
this.rotation = 0;
}
PIXI.DisplayObject.prototype.updateTransform.call(this);
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。