Sto usando la tela per visualizzare alcuni sprite, e ho bisogno di capovolgerne uno in orizzontale (quindi rivolto verso sinistra o destra). Non riesco a vedere alcun metodo per farlo con drawImage
, tuttavia.Capovolgere uno sprite su tela
Ecco il mio codice rilevante:
this.idleSprite = new Image();
this.idleSprite.src = "/game/images/idleSprite.png";
this.idleSprite.frameWidth = 28;
this.idleSprite.frameHeight = 40;
this.idleSprite.frames = 12;
this.idleSprite.frameCount = 0;
this.draw = function() {
if(this.state == "idle") {
c.drawImage(this.idleSprite, this.idleSprite.frameWidth * this.idleSprite.frameCount, 0, this.idleSprite.frameWidth, this.idleSprite.frameHeight, this.xpos, this.ypos, this.idleSprite.frameWidth, this.idleSprite.frameHeight);
if(this.idleSprite.frameCount < this.idleSprite.frames - 1) { this.idleSprite.frameCount++; } else { this.idleSprite.frameCount = 0; }
} else if(this.state == "running") {
c.drawImage(this.runningSprite, this.runningSprite.frameWidth * this.runningSprite.frameCount, 0, this.runningSprite.frameWidth, this.runningSprite.frameHeight, this.xpos, this.ypos, this.runningSprite.frameWidth, this.runningSprite.frameHeight);
if(this.runningSprite.frameCount < this.runningSprite.frames - 1) { this.runningSprite.frameCount++; } else { this.runningSprite.frameCount = 0; }
}
}
Come potete vedere, sto usando il metodo drawImage
per disegnare i miei sprite alla tela. L'unico modo per capovolgere uno sprite che posso vedere è quello di capovolgere/ruotare l'intero canvas, che non è quello che voglio fare.
C'è un modo per farlo? O dovrò fare un nuovo sprite rivolto verso l'altro modo e usarlo?
Grazie! Ma grazie alla risposta di Simon, userò la sua tecnica. Contrassegnerò la tua come risposta accettata anche se risponde alla mia domanda :) –