Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

348
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda