Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

351
Visualizações
¿Cómo hago que las áreas en blanco no se puedan desplazar para iOS sin dañar el juego?

Estoy tratando de mejorar mi experiencia de juego de Phaser habilitando el bloqueo de desplazamiento del cuerpo.

Actualmente, el código del ejemplo oficial se muestra así

ingrese la descripción de la imagen aquí

donde las áreas señaladas por los rectángulos rojos son desplazables, lo cual no es bueno ya que el jugador podría tocar accidentalmente esa área durante el juego.

Traté de cambiar la configuración

 scale: { mode: Phaser.Scale.FIT, parent: 'phaser-example', autoCenter: Phaser.Scale.CENTER_BOTH, width: window.innerWidth, height: window.innerHeight, },

y tengo

ingrese la descripción de la imagen aquí

donde el área señalada por la flecha roja no se puede desplazar aunque el juego ahora es un desastre.

También probé el enfoque en otro tutorial .

 <style> html, body { overflow: hidden; } </style> <script> document.body.ontouchend = (e) => { e.preventDefault(); }; </script>

ninguno de ellos funciona.

esto empeora las cosas

 body { position: fixed; }

¿Cómo hago para que el área no se pueda desplazar sin dañar el juego?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Yo personalmente usaría html y css para resolverlo, pero si no funciona, aquí hay una solución alternativa.

Puede usar el modo de escala Phaser.Scale.FIT y simplemente mostrar la escena del juego, con la ventana de visualización, mantendría la escena del juego en el paisaje/tamaño correcto.

Aquí la idea principal (creo que es un poco raro, pero debería funcionar) :

  • creas una escena de fondo (puedes establecer un color de fondo o un efecto de desenfoque como en los videos horizontales)
  • Además de esa escena, muestra la escena real que contiene el juego.

(dependiendo del tamaño del Juego habría que ajustar el width y height )

Y además usaría los estilos css: html, body {padding:0; margin:0;} solo para estar en el lado de guardar, que el lienzo cubre toda la ventana.

 var config = { type: Phaser.AUTO, scale: { mode: Phaser.Scale.FIT, parent: 'phaser-example', autoCenter: Phaser.Scale.CENTER_BOTH, width: window.innerWidth, height: window.innerHeight, }, ... scene: [{ key: 'background', create: function() { // Game size let width = 800; let height = 600; // Get The game Scene let gameScene = this.game.scene.getScene('gameScene'); // Set Zone for the Game-Scene gameScene.parent = this.add.zone(this.cameras.main.centerX, this.cameras.main.centerY, width, height); // set the part of the scene that should be displayed gameScene.cameras.main .setViewport(gameScene.parent.x - gameScene.parent.width / 2, gameScene.parent.y - gameScene.parent.height / 2, gameScene.parent.width, gameScene.parent.height); }, }, GameScene ] };

Información: solo menciono esta parte porque no es 100% obvia al principio: this.cameras.main.centerX y this.cameras.main.centerY le darían las coordenadas del centro de la scene .

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda