0

非常に混乱しています。私は 2D ゲームを設計しています。このコードを使用して画像を描画し、キャンバスにアラート メソッドを返します。background.x = 0 ! しかし、x を z または任意の文字に変更すると、数字 400 i が返されます。なぜ background.x は常にゼロに等しいのですか ???

var canvas = document.getElementById('game'); 
var context = canvas.getContext('2d');

function loadResources(){
background = new Image();
background.src = "11.jpg";
background.width = 128;
background.height = 128;
background.x = 400;
background.y = 450;

}

function drawimage(){
alert(background.x);
context.drawImage(background,background.x,background.y,background.width,background.height);

}

function gameLoop() {
drawimage();
}


loadResources();
setInterval(gameLoop, 1000/60); 
4

1 に答える 1

1

他のオブジェクトとは異なり、Image オブジェクトに属していないプロパティを実際に設定することはできません。ご覧のとおり、設定後にアクセスしようとすると、プロパティは使用できません。次のようにコードを少し修正して、探している動作を得ることができます。

var canvas = document.getElementById('game'); 
var context = canvas.getContext('2d');
var resources = {};

function loadResources(){
    resources.background = new Image();
    resources.background.src = "11.jpg";
    resources.background.width = 128;
    resources.background.height = 128;
    resources.backgroundx = 400;
    resources.backgroundy = 450;
}

function drawimage(){
    console.log(resources.backgroundx);
    context.drawImage(resources.background,resources.backgroundx,resources.backgroundy,resources.background.width,resources.background.height);
}

function gameLoop() {
    drawimage();
}


loadResources();
setInterval(gameLoop, 1000/60); 
于 2013-07-28T05:50:29.790 に答える