我使用HTML5 canvas和JavaScript来制作基本游戏,并且我有一个数字1-10的图像数组,然后为威尔士另一个数组字数为1-10。html5 canvas图像阵列 - 将图像绘制到画布
我想要做的是从图像数组中选择一个随机元素,并从单词数组中选择一个随机元素并将它们显示在画布上。然后,用户将点击勾号以指示该单词是否代表正确的数字,如果不是,则表示该单词是否为十字。
问题是我不知道如何绘制一个数组元素到画布。我有以下的代码,我打算用只是为了测试它的作品,之前我想想如何使绘制的元素随意选择:
function drawLevelOneElements(){
/*First, clear the canvas */
context.clearRect(0, 0, myGameCanvas.width, myGameCanvas.height);
/*This line clears all of the elements that were previously drawn on the canvas. */
/*Then redraw the game elements */
drawGameElements();
/*Now draw the elements needed for level 1 (08/05/2012) */
/*First, load the images 1-10 into an array */
var imageArray = new Array();
imageArray[0] = "1.png";
imageArray[1] = "2.png";
imageArray[2] = "3.png";
imageArray[3] = "4.png";
imageArray[4] = "5.png";
imageArray[5] = "6.png";
imageArray[6] = "7.png";
imageArray[7] = "8.png";
imageArray[8] = "9.png";
imageArray[9] = "10.png";
/*Then create an array of words for numbers 1-10 */
var wordsArray = new Array();
wordsArray[0] = "Un";
wordsArray[1] = "Dau";
wordsArray[2] = "Tri";
wordsArray[3] = "Pedwar";
wordsArray[4] = "Pump";
wordsArray[5] = "Chwech";
wordsArray[6] = "Saith";
wordsArray[7] = "Wyth";
wordsArray[8] = "Naw";
wordsArray[9] = "Deg";
/*Draw an image and a word to the canvas just to test that they're being drawn */
context.drawImage(imageArray[0], 100, 30);
context.strokeText(wordsArray[3], 500, 60);
}
但由于某些原因,当我查看在浏览器页面,在Firebug控制台,我得到的错误:
Could not convert JavaScript argument arg 0 [nsIDOMCanvasRenderingContext2D.drawImage] context.drawImage(imageArray[0], 100, 30);
我不知道这是如何,我的意思来访问数组元素0的形象......可能有人请点我做错了什么?
*编辑*
我已经改变了下面的代码阵列:
var image1 = new Image();
image1.src = imageArray[0];
/*Draw an image and a word to the canvas just to test that they're being drawn */
context.drawImage(image1, 100, 30);
context.strokeText(wordsArray[3], 500, 60);
但由于某些原因,只能从wordsArray元素被吸引到canvas- imageArray中的图像元素根本不显示。
任何想法?
创建的jsfiddle将帮助我们 – frosty
对不起,我不不知道JSFiddle是什么?我如何创建一个? – Someone2088
对不起。有一个很酷的网站叫JSFiddle。你可以去那里做一个简单的模拟你的代码,然后你可以与我们分享,我们可以更容易地解决你的问题。 – frosty