sko*_*mas 4 javascript canvas html5-canvas
我正在尝试创建一幅复古像素化背景画。“像素”的 x 和 y 位置相应地为奇数和偶数。这似乎适用于分辨率(res 变量)为 4 的情况,然后 % 运算符似乎不起作用。
function drawPixelatedBackground()
{
var res = 5;
for (var x=0; x<settings.width/res;x++ )
{
for (var y=0;y<settings.height/res;y++)
{
if ( (x%2==0) && (y%2==0) )
{
nx = x * (settings.width/res);
ny = y * (settings.width/res);
ctx.fillStyle= settings.colors.Fill;
ctx.fillRect(nx,ny, nx+ (settings.width/res),ny+ (settings.height/res) );
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 5
你的逻辑有点问题。我将在下面解释我的。
http://jsfiddle.net/2eee9moq/2/
function drawCheckeredBackground(can, nRow, nCol) {
var ctx = can.getContext("2d");
var w = can.width;
var h = can.height;
nRow = nRow || 8; // default number of rows
nCol = nCol || 8; // default number of columns
w /= nCol; // width of a block
h /= nRow; // height of a block
for (var i = 0; i < nRow; ++i) {
for (var j = 0, col = nCol / 2; j < col; ++j) {
ctx.rect(2 * j * w + (i % 2 ? 0 : w), i * h, w, h);
}
}
ctx.fill();
}
var canvas = document.getElementById("canvas");
drawCheckeredBackground(canvas);Run Code Online (Sandbox Code Playgroud)
<canvas id="canvas" width="300" height="300"></canvas>Run Code Online (Sandbox Code Playgroud)
for循环将块绘制为一行。
2 * j * w + (i % 2 ? 0 : w)每隔一行移动每个块的 x 坐标。| 归档时间: |
|
| 查看次数: |
5369 次 |
| 最近记录: |