プレーヤーの現在のズームレベルに適合する単純なキャンバスグリッドを作成しようとしていますが、特定のキャンバスの高さ/幅に比例した画面制限にも適合します。キャンバスグリッドが異なるズームレベルでぼやけて表示される
JS:ここで私はこれまで得たものである
var bw = window.innerWidth/2; //canvas size before padding
var bh = window.innerHeight/1.3; //canvas size before padding
//padding around grid, h and w
var pW = 30;
var pH = 2;
var lLimit = 0; //9 line limit for both height and width to create 8x8
//size of canvas - it will consist the padding around the grid from all sides + the grid itself. it's a total sum
var cw = bw + pW;
var ch = bh + pH;
var canvas = $('<canvas/>').attr({width: cw, height: ch}).appendTo('body');
var context = canvas.get(0).getContext("2d");
function drawBoard(){
for (var x = 0; lLimit <= 8; x += bw/8) { //handling the height grid
context.moveTo(x, 0);
context.lineTo(x, bh);
lLimit++;
}
for (var x = 0; lLimit <= 17; x += bh/8) { //handling the width grid
context.moveTo(0, x); //begin the line at this cord
context.lineTo(bw, x); //end the line at this cord
lLimit++;
}
//context.lineWidth = 0.5; what should I put here?
context.strokeStyle = "black";
context.stroke();
}
drawBoard();
を今、私は、各画面の解像度のズームレベルで同じ比例したレベルになるようにキャンバスを作るに成功しました。これは私が達成しようとしていることの一部です。私はまた、すべての異なるズーミングレベルで同じように見える細い線を実現しようとします。もちろん、ぼやけを取り除くこともできます。現在のところ、線の厚さは、ズーミングレベルに応じて変化し、時にはぼやけていることがある。ここで
はjsFiddle(jsFiddleウィンドウ自体は小さいもののので、あなたはほとんど違いに気づくでしょう)です。
https://jsfiddle.net/wL60jo5n/
ヘルプは非常に高く評価されます。
ズームレベルとは、ほとんどのブラウザにズームが組み込まれていることを意味しますか(control + mwheel up/downを使用)ですか? –
はい。 window.innerWidthは、ページが読み込まれるときのユーザーの現在のズームレベルを考慮します。 – RunningFromShia
私が達成しようとしているグリッドシステムのライブ例:http://slither.io/ Webページをどのズームレベルで入力しても、ゲーム中にズームインしたりズームアウトしたりしても、グリッドシステムは同じように見えます。 – RunningFromShia