html插入循环图片,javascript – HTML5在带有for循环的画布上绘制图片?

本文介绍了一位开发者尝试使用HTML5和JavaScript创建一个Minecraft主题的网站,通过16x16像素的瓷砖随机生成屏幕背景地图。在实现过程中遇到问题,画布显示为全白色。代码中定义了根据不同高度分配不同图片的逻辑,但地图渲染不成功。寻求帮助以解决画布渲染问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

所以,我想用

HTML5创建一个Minecraft网站主题.我在HTML5 /

Javascript中有点摇摇欲坠(暂时没用过它),我需要一些帮助.我正在尝试计算一些可以放在屏幕上的16x16px瓷砖.然后,随机“生成地图”作为屏幕背景.然后,我使用相同的2 for循环生成地图,用填充图块填充屏幕(在生成过程中分配图片路径).问题是,画布完全是白色的.任何人都可以选择问题,并在可能的情况下给我任何提示吗?提前致谢!这是我的HTML5代码:

Minecraft Background Check

"use strict";

var c = document.getElementById("bg");

var ctx = c.getContext("2d");

ctx.canvas.width = window.innerWidth;

ctx.canvas.height = window.innerHeight;

var width = Math.ceil(window.innerWidth / 16);

var height = Math.ceil(window.innerHeight / 16);

for (var x=0;x

{

for(var y=0;y

{

var rand = Math.floor(Math.random()*11);

var texLoc = getImageNameFromRand(rand,y,height);

var img=new Image();

img.onload = function(){

return function() {

ctx.drawImage(img,x*16,y*16);

};

};

img.src=texLoc;

}

}

function getImageNameFromRand(rand,yVal,maxY)

{

var dirt = 'dirt.png';

var stone = 'stone.png';

var cobble = 'cobble.png';

var mosscobble = 'mosscobble.png';

var bedrock = 'bedrock.png';

if(yVal===0)

{

return dirt;

} else if(yVal<3)

{

if(rand < 7) {

return dirt; }

else {

return stone; }

} else if(yVal<5)

{

if(rand < 4) {

return dirt; }

else {

return stone; }

} else if(yVal

{

if(rand === 0) {

return dirt; }

else if(rand < 4) {

return cobble; }

else if(rand < 5) {

return mosscobble; }

else {

return stone; }

} else if(yVal

{

if(rand < 4) {

return bedrock; }

else {

return stone; }

} else if(yVal

{

if(rand < 7) {

return bedrock; }

else {

return stone; }

} else {

return bedrock; }

return bedrock;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值