我正在製作一個小型馬里奧遊戲。手寫體精靈動畫
但我不知道如何動畫精靈。按照實施例,我有一個運行mario.gif文件(馬里奧未在GIF捉迷藏)
Click here for the mario picture.
圖片是60×20個像素。目前,這是我的代碼。
class Character {
public y_: number;
public x_: number;
public nFrames: number = 30;
constructor(public _x: number, public _y: number) {
this._x = _x;
this._y = _y;
};
sprite: HTMLImageElement;
setSpriteUrl(input: string) : void {
this.sprite = new Image();
this.sprite.src = input;
}
drawSprite(): void {
ctx.save();
ctx.beginPath();
ctx.drawImage(this.sprite, 0, 0, 15, 20, this._x, this._y, 20, 20);
ctx.restore;
}
}
和
var mario = new Character(40, 50);
mario.setSpriteUrl("graphics/mario/small/Running-mario.gif");
畫面的寬度之後是60個像素,有4個運行馬里奧的圖像。圖片的高度也是20像素。
60/4 = 15
ctx.drawImage(this.sprite, 0, 0, 15, 20, this._x, this._y, 20, 20);
這會讓我覺得它我可以從15到30,它會選擇下一個馬里奧的形象。相反,它讓我從圖片中跑出2個馬里奧。
它是如何工作的?如何選擇馬里奧的每個運行階段?
如果這樣做了,精靈應該用for循環和定時器來動畫嗎?對我來說,這似乎不是最好的做法..因爲我有更多的精靈動畫,然後只有馬里奧和跑步。
考慮到你試圖在畫布上畫一個GIF,我想你的問題可能是這個問題的重複http://stackoverflow.com/questions/3062229/animated-gif-in-html5-canvas – toskv
在這個問題中,這個人問起他的動畫gif。我的gif文件不是動畫,而是一幅普通的圖片(請參閱鏈接)。此人也可以回答圖書館。我不是在尋找一個圖書館,我想了解(教育目的) – Romano
感謝您的澄清,我會收回我的近距離投票。 :) – toskv