Отразить спрайт на холсте

Я использую холст для отображения некоторых спрайтов, и мне нужно перевернуть один по горизонтали (чтобы он смотрел влево или вправо). Однако я не вижу способа сделать это с помощью drawImage .

Вот мой соответствующий код:

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; }
        }
    }

Как видите, я использую метод drawImage , чтобы нарисовать свои спрайты на холсте. Единственный способ перевернуть спрайт, который я вижу, - это перевернуть / повернуть весь холст, чего я не хочу делать.

Есть ли способ сделать это? Или мне нужно будет создать новый спрайт, обращенный в другую сторону, и использовать его?

20
задан Damjan Pavlica 14 May 2016 в 10:49
поделиться