2012-12-24 86 views
1

現在圖像將被移動但不旋轉。我正在實施移動功能。但只支持IE10。旋轉並移動球圖像Html 5

這是我的腳本,

var ball = new Image; 
window.onload = function() { 
var c = document.getElementsByTagName('canvas')[0]; 
var w = c.width = 800; 
var h = c.height = 600; 
var ctx = c.getContext('2d'); 
var dx = -1, dy = 0; 
var x = 400, y = 200, a = 0; 
var deg2rad = Math.PI/180; 
var da = 10 * deg2rad; 
var bw = ball.width; 
var bh = ball.height; 
setInterval(function() { 
    ctx.clearRect(0, 0, w, h); 
    ctx.translate(x, y); 
    ctx.rotate(a); 
    ctx.drawImage(ball, -bw, -bh); 
    ctx.rotate(-a); 
    ctx.translate(-x, -y); 
    x += dx; 
    y += dy; 
    if ((x - bw < 0) || (x + bw > w)) { 
     dx *= -1; da *= -1; 
    } 
    if ((y - bh < 0) || (y + bh > h)) { 
     dy *= -1; da *= -1; 
    } 
}, 30); 
} 
ball.src = 'images/beachball.png'; 

和,這是我的HTML設計,

<canvas id="canvas" width="300" height="300"></canvas> 

有人能幫助我在此先感謝

+3

你有問題要問? –

回答

0

您忘記增加你的旋轉變:

x += dx; 
y += dy; 

也應該有:

a += da; 

但請注意,在你正在做它不會圍繞圖像的中心旋轉的方式旋轉它;它會在角落旋轉。你需要改變這一行來調整佈局:

ctx.drawImage(ball, -bw, -bh); 

ctx.drawImage(ball, -bw/2, -bh/2); 
+0

這是工作,但圖像不會旋轉相同的位置。它會上下旋轉,上下移動 – user1926195

+0

嗯。 [這是一個小提琴](http://jsfiddle.net/9TPNN/1/),可以工作(無論如何,WebKit;我沒有訪問IE)。它使用我上面詳細介紹的編輯。 –