HTML5 キャンバスと JavaScript を使用して基本的なゲームを作成しています。1 ~ 10 の数字の画像の配列と、1 ~ 10 の数字のウェールズ語の別の配列があります。
私がやりたいのは、画像配列からランダムな要素を選択し、単語配列からランダムな要素を選択して、両方をキャンバスに表示することです。次に、ユーザーは目盛りをクリックして、単語が正しい数字を表しているかどうかを示し、そうでない場合は十字をクリックします。
問題は、配列要素をキャンバスに描画する方法がわからないことです。描画される要素をランダムに選択する方法を考える前に、機能することをテストするためだけに使用する次のコードがあります。
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 コンソールでページを表示すると、次のエラーが表示されます。
JavaScript 引数 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 の要素のみがキャンバスに描画されます。imageArray の画像要素はまったく表示されません。
何か案は?