Я пытаюсь заставить Phaser 3 позволить мне вращать холст и использовать разные значения для ввода.
В настоящее время я могу заставить игру вращаться, когда меняется ориентация экрана, но все позиции ввода перепутаныи до сих пор использую старую систему координат.
Как этого добиться, когда холст поворачивает учетную запись системы ввода без необходимости переписывать менеджер ввода.
добавление этого стиля вмой указатель вращает холст
@media only screen and (orientation:landscape) {
body {
transform: rotate(90deg);
}
}
Я пытался установить размеры игры для размера окна просмотра, кажется, ничто не меняет ввод.
Также я достиг этого эффекта, изменив размер холста и вращая камеру. Но, похоже, вход не влияет и на повернутую камеру.
this.game.scale.on( 'orientationchange', ( orientation ) => {
if ( orientation === Phaser.Scale.PORTRAIT ) {
// this.gameContainer.setRotation( 0 );
//this.gameContainer.setPosition( 0, 0 );
//this.game.scale.setGameSize( 720, 1280 );
} else if ( orientation === Phaser.Scale.LANDSCAPE ) {
// Width-height-ratio of game resolution
let game_ratio = ( 9 * 32 ) / ( 15 * 32 );
// Make div full height of browser and keep the ratio of game resolution
let div = document.getElementById( 'content' );
// div.style.width = ( window.innerHeight * game_ratio ) + 'px';
// div.style.height = window.innerHeight + 'px';
// Check if device DPI messes up the width-height-ratio
let canvas = document.getElementsByTagName( 'canvas' )[ 0 ];
let dpi_w = ( parseInt( div.style.width ) / canvas.width );
let dpi_h = ( parseInt( div.style.height ) / canvas.height );
let height = window.innerHeight * ( dpi_w / dpi_h );
let width = height * 0.6;
canvas.style.width = width + 'px';
canvas.style.height = height + 'px';
this.cameras.main.setRotation( 1.5 );
}
} );