2016-08-30 18 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を使ってゲームのトップにメニューを追加していますが、私は問題に遭遇しています。 ゲームは内側のウィンドウのサイズになります。そのため、ゲームと共に表示されるものはすべて、コンテンツがブラウザに収まらなくなります。

ゲームの残りの部分を「塗り潰す」ようにするにはどうすればよいですか?

(私は窓にゲームを拡張する方法についての質問を見つけたが、私は代わりに窓を埋めるためにゲームを希望)

以下の問題を実証するための画像:

( 私はWeb開発に非常に新しいですが、私は感情のCSSが実際にキャンバス上でうまく動作しない持っている:私は排除したいのですが、スクロールバー、)

enter image description here

編集に注意してください。

+1

試み 'HTML、本体{オーバーフロー:隠されました。 } 'あなたのCSSの – Vashtamyty

+0

@ Vashtamytyそれはそうしましたが、それでも私のゲームウィンドウはそれよりも大きくなりますが、それを外に引き出すことはできません。 1つの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

関連する問題