画像の幅を使ってスプライトの幅を計算しようとしていますが、数値は常に0になりますが、それはなぜですか?
function SpriteSheet(image, numFramesX, numFramesY, totalFrames) {
this.image = image;
this.numFramesX = numFramesX;
this.numFramesY = numFramesY;
this.totalFrames = totalFrames;
this.spriteWidth = this.image.width / this.numFramesX;
this.spriteHeight = this.image.height / this.numFramesY;
}
image.onload = function() {
console.log('Image has been loaded');
}
image.src = 'dance.png';
spritesheet = new SpriteSheet(image, 8, 10, 80);
spritesheet.spriteWidthとspritesheet.spriteHeightは常に0になります。画像の幅を手動で入力すると機能するため、問題を「this.image.width」に追い詰めました。
this.spriteWidth = 880 / this.numFramesX;
それ以外の
this.spriteWidth = this.image.width / this.numFramesX;
コンソールのオブジェクトを使用して計算した場合にも機能します。
spritesheet.image.width / spritesheet.numFramesX
110を生成します