2011-05-23 130 views
3

我想弄清楚如何在javascript中使用精靈表創建旋轉圖像效果。我想要做的事:點擊Javascript精靈旋轉動畫

兩個按鈕:

左鍵:旋轉15幀到左。 右鍵:向右旋轉15幀。

我意識到有jquery插件可以讓我輕鬆做到這一點,但我想嘗試從頭開始。除了總體思路之外,我不知道該怎麼辦。任何提示將非常感謝。

+1

如果您將所有圖像放在一個文件中,您可能需要查看CSS sprites(背景圖像定位技巧),然後爲背景圖像位置更改設置動畫。我知道你想從頭開始,但這可能有幫助:http://www.protofunc.com/scripts/jquery/backgroundPosition/。 – pimvdb 2011-05-23 20:45:39

回答

7

看看這個jsFiddle to see a working example


根據您的問題,這聽起來像你想學習如何製作動畫精靈並沒有真正旋轉單個圖像。如果是這樣,這裏是你將如何動畫一個精靈。注意:這使用一個男人跑步的圖像。在你的問題中,你問了一個旋轉的圖像效果。在任何一種情況下,您都只是在查看精靈的不同部分,然後動畫完全依賴於精靈。只要你的精靈顯示一個旋轉的圖像,那麼圖像就會旋轉。

如果你需要一個插件來實際旋轉圖像,see here

的JavaScript

<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.5.1.js" type="text/javascript"></script> 
<script type="text/javascript"> 
var imgWidth = 240; 
var imgHeight = 296; 
var ximages = 6; 
var yimages = 5; 
var currentRow = 0; 
var currentColumn = 0; 

function MoveSprite(dir) { 
    if (dir == "left") { 
     currentColumn--; 
     if (currentColumn < 0) 
     { 
      currentColumn = ximages -1; 
      if (currentRow == 0) { 
       currentRow = yimages - 1; 
      } 
      else { 
       currentRow--; 
      } 
     } 
    } 
    else { 
     currentColumn++; 
     if (currentColumn == ximages) { 
      currentColumn = 0; 
      if (currentRow == yimages - 1) { 
       currentRow = 0; 
      } 
      else { 
       currentRow++; 
      } 
     } 
    } 
    $("#txtRow").val(currentRow); 
    $("#txtColumn").val(currentColumn); 
    $("#spritesheet").css("backgroundPosition", -imgWidth * currentColumn + "px " + -imgHeight * currentRow + "px"); 
} 
</script> 

HTML

<button onclick="MoveSprite('left');return false;">Move Left</button><button onclick="MoveSprite('right');return false;">Move Right</button> 
<div id="spritesheet"></div> 

CSS

<style type="text/css"> 
#spritesheet { 
    height: 296px; 
    width:240px; 
    background-image:url('walking_spritesheet.png'); 
} 
</style> 

樣品雪碧(1440x1480): enter image description here

+0

只是玩耍:http://jsfiddle.net/Nhumc/68/ – Sphinxxx 2017-09-12 01:05:06