【发布时间】:2018-03-31 00:02:23
【问题描述】:
(HTML5 Canvas, JavaScript) 你好,我有这个数组:
var chestArray = new Array(9);
chestArray[0] = "./assets/chest.png";
var chest = new Image();
chest.onload = function () {
ctx.drawImage(chest, 150, 280, 200, 177);
ctx.drawImage(chest, 320, 280, 200, 177);
ctx.drawImage(chest, 490, 280, 200, 177);
ctx.drawImage(chest, 150, 420, 200, 177);
ctx.drawImage(chest, 320, 420, 200, 177);
ctx.drawImage(chest, 490, 420, 200, 177);
ctx.drawImage(chest, 150, 560, 200, 177);
ctx.drawImage(chest, 320, 560, 200, 177);
ctx.drawImage(chest, 490, 560, 200, 177);
};
chest.src = chestArray[0];
我还有一个按钮,它生成一个 0 到 8 之间的随机数:
function randomBox() {
alert('it worked! ' + Math.floor(Math.random() * chestArray.length));
}
无论生成什么随机数,我都希望它使用正确的箱子执行任务,但首先我需要一种方法将上述数组中的 9 个箱子中的每一个分配给按 0 到 8 排序的数字。什么是最简单的方法是什么?我以为我可以在阵列中单独分配每个箱子,但无论我做错了什么,它都不起作用。任何帮助将不胜感激。
【问题讨论】:
-
为什么?你在做什么?这当然是 X/Y 问题。您的问题措辞不佳,但我猜您想绘制所有箱子,然后对随机箱子做“某事”,这是正确的吗?
-
是的。我已经画好了箱子。
-
你想对随机宝箱做什么?
-
它将显示一个图像。让我说得更清楚一点,因为我的问题措辞不是很好。我有9个盒子。它们在一个数组中,全部显示并准备就绪。我有一个按钮。我单击按钮,它给了我一个介于 0 到 8 之间的随机数。假设它给我的数字是 5 - 我希望我的程序说好的,那就是 6 号框。我需要一种方法来链接这两个东西,以便然后,我可以让框在发生这种情况时显示图像。
-
所以你想显示9张图片,随机一张画一张特定的图片,其余的画一张胸部图片?第一步是加载 2 个图像,胸部和这个 other 图像。然后你想阅读 DILP 的答案,将你的 9 个图像对象/箱子放在一个数组中。在绘制图像之前,您需要使用生成的随机整数将数组项的 src 更改为 other 图像(不是胸部)。请参阅我的答案以了解如何为数组中的随机项赋值。
标签: javascript arrays html html5-canvas