너비가 960px이고 높이가 html5 인 캔버스 게임입니다. 나는 자바 스크립트를 사용하여 캔버스의 크기를 조정하고 내용을 비율에 맞게 세로 및 가로로 항상 맞게 조정하여 많은 화면이 960 픽셀 이하이고 일부 사용자가 확대/축소 할 수 있다는 것을 알지 못하기 때문에 맨 아래가 잘리지 않도록합니다. 데스크탑 브라우저로 컨텐츠를 맞추십시오. 코드는 다음과 같습니다캔버스는 창의 크기를 조정할 때만 응답하고 확대 할 때는 만들지 마십시오.
var w = stage.canvas.width;
var h = stage.canvas.height;
var scaleFactor;
window.addEventListener('resize', resizeCanvas, false);
function resizeCanvas() {
scaleFactor = Math.min(window.innerWidth/w, window.innerHeight/h);
stage.canvas.width = scaleFactor * w;
stage.canvas.height = scaleFactor * h;
stage.scaleY = scaleFactor;
stage.scaleX = scaleFactor;
}
내 문제도 확대하는 window.innerWidth 및 window.innerHeight 값을 변경 이후는, 데스크탑이나 모바일 브라우저에서하거나 확대 할 때 게임도 자체의 크기를 조정합니다. 그러나 창 크기를 조정할 때 게임 자체의 크기를 조정할 수는 있지만 눈이 너무 완벽하지 않은 사람들을 위해 (특히 작은 모바일 화면에서는) 확대/축소 할 수 있어야합니다.
저는 몇 주 동안 다른 방법을 시도해 보았지만 아직 해결 방법을 찾지 못했습니다. 나는 비교적 초보자이기 때문에 누군가가 복잡하지 않은 해결책을 제시 할 수 있다면 매우 행복 할 것이다. 미리 Thx.
답장을 보내 주셔서 감사합니다. window.devicePixelRatio는 데스크톱 브라우저의 메뉴에서 Ctrl +/- 또는 확대/축소를 사용하면 실제로 바뀌므로 데스크톱 장치에서 문제가 해결되었습니다. 그러나 안타깝게도 pinch-zoom 할 때 window.devicePixelRatio의 값은 모바일 브라우저와 데스크톱 버전의 Windows 태블릿에서는 영향을받지 않으며 항상 동일하게 유지됩니다. :( – Profimrus