サイトの index.html ページに次のコードがあり、ページが読み込まれると、HTML5 キャンバスに多数の画像が描画されます。
window.onload = function(){
var sources = {};
sources[0] = document.getElementById("building").src,
sources[1] = document.getElementById("chair").src,
sources[2] = document.getElementById("drink").src,
sources[3] = document.getElementById("food").src,
sources[4] = document.getElementById("fridge").src,
sources[5] = document.getElementById("land").src,
sources[6] = document.getElementById("money").src,
sources[7] = document.getElementById("oven").src,
sources[8] = document.getElementById("table").src,
sources[9] = document.getElementById("van").src,
sources[10] = document.getElementById("burger").src,
sources[11] = document.getElementById("chips").src,
sources[12] = document.getElementById("drink").src,
sources[13] = document.getElementById("franchiseFee").src,
sources[14] = document.getElementById("wages").src,
sources[15] = document.getElementById("admin").src,
sources[16] = document.getElementById("cleaners").src,
sources[17] = document.getElementById("electricity").src,
sources[18] = document.getElementById("insurance").src,
sources[19] = document.getElementById("manager").src,
sources[20] = document.getElementById("rates").src,
sources[21] = document.getElementById("training").src,
sources[22] = document.getElementById("water").src,
sources[23] = document.getElementById("burger").src,
sources[24] = document.getElementById("chips").src,
sources[25] = document.getElementById("drink").src,
sources[26] = document.getElementById("creditors").src,
sources[27] = document.getElementById("electricity").src,
sources[28] = document.getElementById("food").src,
sources[29] = document.getElementById("hirePurchase").src,
sources[30] = document.getElementById("loan").src,
sources[31] = document.getElementById("overdraft").src,
sources[32] = document.getElementById("payeTax").src,
sources[33] = document.getElementById("tax").src
loadImages(sources, drawImage);
};
Sources は、JavaScript で画像を保持するために使用している配列です。これにより、HTML の非表示セクションから読み込まれた画像をキャンバスに描画できます。
この関数は現在、意図したとおりに機能します。loadImages 関数への呼び出しがあり、HTML の非表示セクションから JavaScript 配列に画像をロードし、drawImage
配列内の各画像に対して関数を呼び出します。しかし、window.onload で呼び出したい別の関数もあります。
window.onload に追加したい関数は次のとおりです。
function drawGameElements(){
/* Draw a line for the 'score bar'. */
context.moveTo(0, 25);
context.lineTo(1000, 25);
context.stroke();
/* Draw current level/ total levels on the left, and current score on the right. */
context.font = "11pt Calibri"; /* Text font & size */
context.strokeStyle = "black"; /* Font colour */
context.strokeText(currentLevel + "/" + totalLevels, 10, 15);
context.strokeText(currentScore, 950, 15);
}
loadImages(sources, drawImage);
の行のすぐ下に関数への呼び出しを追加してみましたwindow.onload = function(){};
だから私は今持っている:
window.onload = function(){
...
loadImages(sources, drawImage);
drawGameElements();
};
これは部分的に機能しますが、「スコアバー」のキャンバスの上部に線を引き、キャンバスの左側の線のすぐ上のレベルに「1/3」と書きますが、何らかの理由で右側に現在のスコアを描画しません。
また、キャンバスに描画された画像の 1 つをクリックしてキャンバス上にドラッグ アンド ドロップするとすぐに、「スコア バー」がキャンバスから完全に消えます。
これがなぜなのか誰か知っていますか?キャンバスで他に何が起こっても、ゲーム中にスコア バーを表示したままにするにはどうすればよいですか? また、 currentScore 変数を表示するにはどうすればよいですか?