- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试从图 block 集中加载 Sprite ,并将它们加载到 HTML5 Canvas 中。
问题是坐标不等于图像的大小(它被拉伸(stretch))
我的所有图像都是 64x64 像素。 (1080p 分辨率预览: )如您所见, Canvas 正在拉伸(stretch)那些 64x64 图像。
所有代码:HTML:
<html>
<head>
<link rel="stylesheet" href="css/reset.css" />
<link rel="stylesheet" href="css/board.css" />
<script src="js/ext/jquery.js"></script>
<script src="js/game.js"></script>
</head>
<body>
<canvas id="GameBoard"></canvas>
</body>
</html>
CSS:
#GameBoard {
width: 100vw;
height: 100vh;
border: 1px solid white;
}
JavaScript:
$(document).ready(function()
{
createWorld();
});
function createWorld()
{
var TileSets = loadTiles();
drawWorld(TileSets);
}
var chunks =
[
[[0],[0],[0],[0],[0]],
[[0],[1],[0],[1],[0]],
[[0],[1],[0],[1],[0]],
[[0],[1],[0],[1],[0]],
[[0],[0],[0],[0],[0]]
];
var tiles =
[
{ tileid: 0, tileset: 1, tilerow: 0, tilecolumn: 0},
{ tileid: 1, tileset: 1, tilerow: 0, tilecolumn: 1}
]
var tilesets =
[
{ tilesetid: 0, tilesrc: "static/tiles/tileset0.png", description:"OLD" },
{ tilesetid: 1, tilesrc: "static/tiles/tileset1.png", description:"New TEST" }
]
function loadTiles()
{
var tiless = [];
for(var i = 0; i < tilesets.length; i++)
{
var img = new Image();
img.src = tilesets[i].tilesrc;
tiless.push(img);
}
return tiless;
}
function drawWorld(TileSets)
{
var WorldData = chunks;
var canvas = document.getElementById("GameBoard");
var counter = 0;
for(var i = 0; i < WorldData.length; i++)
{
for(var j = 0; j < WorldData[i].length; j++)
{
counter++;
var ctx = canvas.getContext("2d");
var tileid = WorldData[i][j];
var tilerow = tiles[tileid].tilerow;
var tilecolumn = tiles[tileid].tilecolumn;
console.log("DRAWN: " + counter + " FROM SET: " + tilerow + "x" + tilecolumn + " AT: " + i + "x" + j);
ctx.drawImage(TileSets[1], 64 * tilecolumn , 64 * tilerow, 64, 64, 64 * j, 64 * i, 64, 64);
}
}
}
有没有什么方法,JavaScript、CSS 或其他方法可以使 Canvas 网格的大小为 64 x 64,以便图像按照自己的比例并排放置。
最佳答案
<canvas id="GameBoard"></canvas>
您必须通过像素值指定宽度
和高度
属性。这些值是 Canvas 的虚拟大小。当您绘制某些内容时会使用此尺寸。
CSS
css 中的尺寸将 Canvas 缩放至指定尺寸,但不改变其虚拟尺寸。您会看到这种缩放。
您必须通过仅指定一维来保持 CSS 中的比例。如果这不是解决方案,请提供有关您需要的虚拟大小的更多信息,我将尝试通过更具体的 css 提供帮助。
关于javascript - HTML Canvas 正在拉伸(stretch)内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31632157/
好吧,这是最好用图像来解释的事情...... 我正在寻找一个类似于 StretchBlt 的函数,但我可以将图像复制到定义目标四个角的 Canvas 上,即将图像的梯形/四边形拉伸(stretch)绘
我为 UITextField 制作了一个自定义键盘,其中包含 18 个 UIButton。它是一个 UIView,被设置为文本字段的 inputView。 按钮是在 UIView 的 initWith
我想创建一个 UIButton,它使用可拉伸(stretch)图像作为背景图像,例如我可以轻松调整按钮大小以适应不同的标签等。 所以我创建了以下运行良好的代码: UIImage *bgImage =
我正在尝试拉伸(stretch) UIImageView 中的图像 - 但我惨败了:) 以下设置: 带有 View 和附加到该 View 的 UIImageView 的 NIB 文件。 使用IBOut
我一直在尝试使用 html Canvas ,但由于某种原因,很难让它不拉伸(stretch)东西。我试过只使用 screen.width 和 screen.height,但我通过使用 screen.a
我想拉伸(stretch)上图的左右两侧,并保持中间的箭头不拉伸(stretch)。我怎样才能做到这一点? 最佳答案 如果你不喜欢打扰 Photoshop 并且图像不需要动态调整大小,你可以使用我在
我的页脚在一个容器中有四列。它需要在容器内以与上面的内容对齐。 我的问题是我想让左栏有红色背景,但目前它不会拉伸(stretch),因为它显然在容器中。 我怎样才能将它向左拉伸(stretch)整个宽
有没有办法拉伸(stretch)按钮,使中央部分保持完整? 9-patch 不允许这样做。 编辑:我按照 Benito 的建议使用了 9-patch。它工作正常。奇怪的是,我第一次无法得到它。 最佳答
我想拉伸(stretch)上图的左右两边,中间的箭头不拉伸(stretch)。我该怎么做? 最佳答案 如果你不想打扰 Photoshop 并且如果图像不需要动态调整大小,你可以在 UIImage 上使
我创建了一个 9patch 图像,不知何故它只能垂直拉伸(stretch)。我尝试了其他 9-patch 图像,但它们具有相同的效果,为什么它们在其他情况下工作。所以我认为 9patch 应该没问题。
我需要在边框控件(或类似控件)中绘制一些简单的线条,这些线条始终延伸到边框的边界。有没有办法只拉伸(stretch)线条而不是它的笔?不涉及大量 C#? 在这个版本中,线条延伸:
这是我的 XAML 及其外观:
编辑:答案将允许背景图像根据 body 的大小改变它的高度。如果正文是 500px 高,它应该是 100% 宽度,500px 高度。或 100% 宽度 2500 像素高度。 也许我错过了这件事,但我正
我有一个 UILabel。我设置了尾随和前导空间约束,还添加了对齐 Y 中心约束。我已将行数设置为零。 我的目标是将 UILabel 拉伸(stretch)到某个最大宽度,然后添加新行。在给定的约束条
我正在制作一个网站,对于该网站,我正在使用顶部的导航栏。我想要的是将栏放在页面的顶部,并且它是主页的单独颜色。这是我当前的代码: body { font-family: "Baloo Bhaina
我编写了代码来 reshape 已纹理化的四边形。当我拉伸(stretch)四边形时,图像确实按照我的预期拉伸(stretch)了。我似乎在拉伸(stretch)图像时有两个不同的三角形,图像被拉伸(
我在 div 中嵌入了 YouTube。此 div .entry-content 的 max-width 为 30em。 YouTube 嵌入我想要全窗口宽度,延伸到 #container 之外。为此
看: //UIImageView* stretchTest = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]
我有一个 super 简单的网页,由纯 HTML/CSS 组成。正如预期的那样,当我在本地运行它时,一切正常。 但是,当我部署它时(使用 Droppages,一个通过 Dropbox 的静态页面托管平
我正在尝试将一个 9 色 block 图像设置为我的一项 Activity 的背景,但它不必要地拉伸(stretch),使一切变得奇怪。我使用 draw9patch 创建它,并在左下角添加了一个像素,
我是一名优秀的程序员,十分优秀!