2009-11-11 36 views

回答

7

而不是翻譯前進,然後再翻譯向後,只需將您當前的狀態推到堆棧上,然後再進行traslate/rotate,並且完成後 - 將狀態從堆棧中彈出。這是大多數圖形應用程序如何使用翻譯/旋轉。

此外,您正在翻譯x, y,然後另外撥打ctx.drawImage(guy, x, y)。實際上,這將使偏移量加倍。我要麼擺脫翻譯調用,要麼將drawImage調用的位置參數更改爲0, 0

function drawGuy() { 
    ctx.save();                               
    ctx.translate(x,y);  
    ctx.rotate(angle * Math.PI/180);                    
    ctx.drawImage(guy, 0, 0); 
    ctx.restore();            
}

退房規範有關context.save()context.restore()(畫布的方式確實狀態推/ POP),here

+0

太棒了,謝謝。但現在圖像不旋轉... – 2009-11-11 19:33:22

+0

多一個編輯..你需要增加你的旋轉角度。這就是爲什麼旋轉不會像動畫一樣發生。發生了,只是不隨時間變化。 – JasonWyatt 2009-11-11 19:50:08

+0

哦是啊> _>傻了我,對不起。謝謝您的幫助! – 2009-11-11 20:57:50