2016-08-30 4 views
1

작은 웹 게임을 만들었습니다.이 코드를 사용하여 게임을 페이지 크기로 확장했습니다.화면의 나머지 부분에 맞게 HTML5 캔버스

var canvas = document.getElementById("game"); 
var ctx = canvas.getContext("2d"); 
canvas.width = window.innerWidth; 
canvas.height = window.innerHeight; 
document.body.appendChild(canvas); 
// Attempt at auto-resize 
function resize_canvas(){ 
    if (canvas.width != window.innerWidth) 
    { 
     canvas.width = window.innerWidth; 
    } 
    if (canvas.height != window.innerHeight) 
    { 
     canvas.height = window.innerHeight; 
    } 
} 
window.addEventListener("resize", resize_canvas); 
window.addEventListener("orientationchange", resize_canvas); 

그러나 이제는 CSS를 사용하여 게임 상단에 메뉴를 추가하고 있는데 문제가 있습니다. 게임은 내부 창의 크기를 사용하므로 게임과 함께 표시되는 내용으로 인해 콘텐츠가 브라우저에 맞지 않게됩니다.

어떻게 게임을 "채우기"다른 창을 만들 수 있습니까?

는 (I 창에 게임을 확장하는 방법에 대한 질문을 찾았지만, 내가 대신 창을 채우기 위해 게임을하고 싶습니다) 아래의 문제를 보여

이미지 : (

을 내가 제거하고 싶은 스크롤바)

enter image description here

편집을 주목하라 : 나는 웹 개발에 아주 새로운 해요,하지만 난 느낌 CSS 정말 캔버스에 잘 작동하지 않습니다 있습니다.

+1

시도'HTML, 신체 {오버 플로우 : 숨겨진; }'당신의 CSS에서 – Vashtamyty

+0

@ Vashtamyty 그런 일을했지만, 여전히 내 게임 창이 더 커야하지만, 밖에 나가는 것은 아닙니다. 하나의 div (페이지에 비례 함)를 만들고 메뉴 및 게임을 넣고 해당 div를 화면에 맞출 수 있습니까? – Paul

+0

CSS는 캔버스 크기를 효과적으로 변경할 수 없다고 생각하지만 (실제로는 크기 만 조정되지만 표시되는 픽셀의 양은 변경되지 않습니다). – Paul

답변

0

그리고 탐색 높이를 제거하면?

var canvas = document.getElementById("game"); 
var ctx = canvas.getContext("2d"); 
var menu = document.getElementById('nav') 
resize_canvas(); 
document.body.appendChild(canvas); 

// Attempt at auto-resize 
function resize_canvas(){ 
    canvas.width = window.innerWidth; 
    canvas.height = window.innerHeight - menu.offsetHeight; 
} 
window.addEventListener("resize", resize_canvas); 
window.addEventListener("orientationchange", resize_canvas); 

canvas { 
    position:relative; 
} 
+0

나는 그것을 생각하고 있었지만 다소 "해커"같은 소리가 들렸다. 누군가가 확대 (가능하면 안되지만 실제로 차단할 수는 없음). 메뉴가 커지지 만 변수가 하드 코딩되고 메뉴가 겹쳐집니다. – Paul

+0

아, 신경 쓰지 마세요. 변수가 하드 코드되지 않았 으면 id로 요소를 가져 오므로 배율 조정 중에는 작동해야합니다. 사소한 문제는 다른 객체를 넣을 때 "동적으로"작동하지 않는다는 것입니다. 그러나 실제로 그렇게 할 생각은 아닙니다. – Paul

+0

'다른 대상'은 무엇을 의미합니까? – Quentin