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

111
Vistas
Escala automática de buzón HTML5 Canvas

En el motor de Construct 2, hay una escala de buzón automática para el lienzo del juego. Intenté hacer esto en mi juego Javascript, pero no pude obtener el mismo resultado. El lienzo se ajusta verticalmente, pero a veces el ancho es lo suficientemente alto como para desbordar la pantalla. ¿Cómo puedo hacer que el lienzo se ajuste a la pantalla sin desbordarse manteniendo la relación de aspecto como en Construct 2?

 <!DOCTYPE html> <html> <head> <style> body { margin: 0; height: 100vh; display: flex; justify-content: center; background-color: black } </style> <script src="main.js"></script> <meta charset="UTF-8"> <title>My Game</title> </head> <body id="body"> <canvas id="canvas"></canvas> </body> </html>
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Intentaría configurar el elemento <canvas> max-width: 100% o max-width: 100vw .

about 4 years ago · Juan Pablo Isaza Denunciar

0

Después de esforzarme tanto, finalmente obtuve una respuesta para mi pregunta. Creé un contenedor flexible con elementos de alineación como estiramiento (para que el lienzo dentro de él se pueda cambiar de tamaño automáticamente), y javascript maneja el ancho y la altura de este contenedor, por lo que cuando se activa un evento de cambio de tamaño, el contenedor cambia automáticamente de tamaño a encajar en la relación de aspecto de mantenimiento de pantalla.

 <!DOCTYPE html> <html> <head> <style> * { margin: 0; padding: 0; } body { display: flex; justify-content: center; align-items: center; width: 100vw; height: 100vh; background-color: black; } #container { display: flex; justify-content: center; align-items: stretch; } </style> <script src="main.js"></script> <meta charset="UTF-8"> <title>Game</title> </head> <body> <div id="container"> <canvas id="canvas"></canvas> </div> </body> </html>
 window.onload = function() { var container = document.getElementById("container") var canvas = document.getElementById("canvas") var ctx = canvas.getContext("2d") canvas.width = 640 canvas.height = 1200 } window.addEventListener("resize", function() { let width_scale = window.innerWidth / canvas.width let height_scale = window.innerHeight / canvas.height let scale = Math.min(width_scale, height_scale) container.style.width = `${canvas.width * scale}px` container.style.height = `${canvas.height * scale}px` })
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