これは私にとってはうまくいくものではありません。drawImage()でキャンバスに複数のイメージを描画する問題
私はdrawImage()を使用して複数の画像をキャンバスに描画しようとしています。私は何かを少し見落としているような気がする。
キャンバスに18枚のカードを描画する必要があります。左から50px、上から下に向かい、各カードを100w * 150hで描きます。各カードの画像の間に25ピクセルが必要です。キャンバスの寸法は825w * 600hに設定されています。
普通のJavascript(jQueryなし)でこれを達成しようとしています。どんな助けもありがとうございます。
// Draw the cards to the canvas.
function drawCards()
{
// Starting positions.
var x = 50;
var y = 50;
// Counter that will hold current card position.
var cardCount = 0;
var img = new Image(100, 150);
// How many rows.
for (var row = 0; row < 3; row++)
{
// How many columns.
for (var column = 0; column < 6; column++)
{
// Store the current card.
var card = memoryDeck[cardCount];
// Check if the card is flipped, if it is set an image with url to face card.
if (card.flipped == true)
{
img.onload = function() {
ctx.drawImage(this, x, y, 100, 150);
}
img.src = card.faceImage;
}
// Otherwise set image url to back of card.
else
{
img.onload = function() {
ctx.drawImage(this, x, y, 100, 150);
}
img.src = card.backImage;
}
// Increase the x position (the width of a card, plus the space in between), and the current card position being stored.
x += 125;
cardCount++;
}
// We are on a new row, reset the column card position and increase the row card position.
x = 50;
y += 175;
}
}
これは私の問題の半分を解決しました。ありがとう!私はまだ最後のイメージを描くのはなぜなのか、まだ分かりません。:/ –
これを完全には適用しなかったようです。これを使用してわずかな調整を行い、全体を修正することができました。どうもありがとうございます! –