gpt4 book ai didi

javascript - 在 HTML5 canvas 中不负责任地传播图像

转载 作者:可可西里 更新时间:2023-11-01 14:50:45 24 4
gpt4 key购买 nike

我正在尝试用 JavaScript 和 HTML5 编写我的第一款游戏,但我被卡住了。我只想在设置了 background-image 的 HTML canvas 中绘制图像,但图像仍然被放大并且位置不佳,我不知道为什么。让我们展示我的代码。

在 body 的 HTML 文件中,我只有 Canvas #gameCanvas,仅此而已。

这是 JavaSript 代码。

function prepare()
{
var canvas = $('#gameCanvas');
var context = canvas[0].getContext('2d');

$('#wrapper').css({"width": "704"});

canvas.css({"width": "704",
"height": "672",
"backgroundImage": "url(./images/map.png)"});

var player1 = new Image();
player1.src = "./images/player1.png";
player1.onload = function() {
context.drawImage(player1, 0, 0, 26, 36, 100, 100, 26, 36);
};
}

$(function(){
prepare();
})

这就是我的奇怪结果 -> 1.result

我发现,当我删除 Canvas 的 css 属性宽度和高度设置时,它会正确绘制图像,但 Canvas 只有根据浏览器的默认大小。 -> 2.result

我完全糊涂了。

最佳答案

您正在使用 CSS 设置 Canvas 的大小。这只会将默认的 300x150 大小的 Canvas 放大到您使用 CSS 设置的大小(就像它是图像一样)(此外,要使 CSS 使用 0 以外的其他值,您需要指定一个单位 - 但暂时忽略它).

您需要使用 Canvas 属性(属性)widthheight 明确设置大小。

canvas[0].width = 704;   // no unit required for the attributes
canvas[0].height = 672;

关于javascript - 在 HTML5 canvas 中不负责任地传播图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19869336/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com