Oneshot Gems
今すぐプレイ

ゲーム開発者向け

キャンバスのピクセル密度を慎重に選択してください

キャンバスには CSS 表示サイズとピクセル バッキング ストアがあります。これらのサイズが異なる場合、ブラウザーは描画されたビットマップを拡大縮小して、アートを柔らかくする可能性があります。すべてのデバイス ピクセルを一致させると鮮明さが向上しますが、ゲームが処理する必要があるピクセル数が増加します。適切な設定はアート スタイルとレンダリング予算によって異なります。ピクセル アート スプライトには整数スケーリングと最近傍の選択が必要な場合がありますが、ライン アート インターフェイスにはより高いバッキング解像度が役立つ場合があります。

このページの内容

ピクセルを設定する前に CSS ボックスを測定します

表示されたキャンバスの寸法を読み取り、選択したデバイス スケールを掛け、バッキングの幅と高さを設定し、ゲーム ロジックが CSS 空間単位を使用し続けることができるように描画座標を変換します。これらのキャンバス属性を割り当てると描画状態がリセットされるため、幅または高さを変更した後は変換を再適用してください。

1、1.5、2 などの倍率で 1 ピクセルのグリッド、斜めのエッジ、小さな UI テキストを比較します。鮮明さと応答性の両方を確認します。完全な devicePixelRatio 乗数は出発点であり、すべてのゲームが従うべきルールではありません。レンダリング スケールを下げると、CSS レイアウトを変更せずに、密集したディスプレイのコストを削減できます。

サイズ変更とメモリを選択の一部として扱う

バッキング ストアのピクセル数は両方の次元で増加するため、各方向にスケールを 2 倍にすると 4 倍のピクセルが作成されます。高密度設定を出荷する前に、サポートされている最大のディスプレイ サイズでビジー シーンをテストし、メモリ不足や再描画の速度の低下を確認します。

MDN のキャンバス ガイダンスには、devicePixelRatio ベースのセットアップが示されています。 WebGL のベスト プラクティス ページでは、非整数の比率とズームに関する微妙な点が指摘されています。ブラウザーのズームまたはディスプレイ間でウィンドウを移動した後は再確認し、有効なサイズが変わっていない場合はバッキング ストアを繰り返しリセットしないようにしてください。

⁨ゲームのCanvasとdevicePixelRatio⁩についての質問

キャンバスの幅は常に CSS 幅と devicePixelRatio の積に等しい必要がありますか?

いいえ。コンテンツは鮮明になりますが、処理負荷とメモリ使用量が増えます。同じシーンと見た目のチェックを使い、フル解像度版と上限を設けた解像度版を比較してください。

サイズを変更すると描画がぼやけてしまうのはなぜですか?

キャンバスの幅または高さを変更すると、そのビットマップがクリアされ、コンテキストの状態がリセットされます。バッキングの寸法を再計算し、コンテキストを再度スケールし、シーンを再描画します。

関連情報

古い情報を見つけましたか? 訂正を連絡

もっと遊ぼう。

いつでも遊べる無料ブラウザーゲーム。楽しいゲームを見つけて、次のお気に入りにしよう。

気になることを、もっと