有沒有人有在Silverlight中使用spritesheet的例子?我想剪輯圖像,當按下按鈕時,跳轉到下一幀。 (如果用戶不斷點擊按鈕,它會看起來像一個動畫)。我環顧四周,但還沒有找到我正在尋找的東西。謝謝你的幫助。Silverlight中的Spritesheet
回答
以下內容將完全符合您的要求。您可以使用鍵盤上的向上鍵和向後鍵在動畫中進行導航。
XAML
<Rectangle x:Name="imgRect">
<Rectangle.Fill>
<ImageBrush x:Name="imgBrush" ImageSource="walking_spritesheet.png" Stretch="None" AlignmentX="Left" AlignmentY="Top" />
</Rectangle.Fill>
</Rectangle>
C#
imgRect.Width = 240; //Set the width of an individual sprite
imgRect.Height = 296; //Set the height of an individual sprite
const int ximages = 6; //The number of sprites in each row
const int yimages = 5; //The number of sprites in each column
int currentRow = 0;
int currentColumn = 0;
TranslateTransform offsetTransform = new TranslateTransform();
KeyDown += delegate(object sender, KeyEventArgs e)
{
switch (e.Key)
{
case Key.Up:
currentColumn--;
if (currentColumn < 0)
{
currentColumn = ximages -1;
if (currentRow == 0)
{
currentRow = yimages - 1;
}
else
{
currentRow--;
}
}
break;
case Key.Down:
currentColumn++;
if (currentColumn == ximages)
{
currentColumn = 0;
if (currentRow == yimages - 1)
{
currentRow = 0;
}
else
{
currentRow++;
}
}
break;
default:
break;
}
offsetTransform.X = -imgRect.Width * currentColumn;
offsetTransform.Y = -imgRect.Height * currentRow;
imgBrush.Transform = offsetTransform;
爲了進行測試,請嘗試使用下面的圖片(1440x1480):
謝謝,這是偉大的! – Skoder 2011-05-02 18:06:00
@Skoder:太好了。如果您還有其他問題,請告訴我。 – 2011-05-02 19:10:40
這裏是另一個解決方案,任何工作精靈表創建,只需添加密鑰代碼。
如果您願意使用Sprite Vortex(實際的特定版本),您可以使用以下類。你必須使用Sprite Vortex 1.2.2,因爲在更新的版本中XML格式被改變了。確保您添加屬性的XML文件更改爲「不編譯」。
如果你需要一個工作的例子,我可以給你一個非常簡單的例子。
p.s. Sprite Vortex應該使用其他程序來做同樣的事情,但是1.2.2版本很麻煩,但不是太糟糕。
該課程在這裏:http://pastebin.com/sNSa7xgQ
- 1. XAML中的Spritesheet
- 2. RubyMotion&SpriteSheet
- 3. 從spritesheet
- 4. 沒有匹配函數調用'spriteSheet :: spriteSheet()'
- 5. 導出cocos2d的spritesheet
- 6. 作物的Texture2D Spritesheet
- 7. pugixml spritesheet導航
- 8. AS3 Spritesheet動畫
- 9. XNA spritesheet animation
- 10. spritesheet動畫
- 11. WPF spritesheet動畫
- 12. EaselJS和SpriteSheet
- 13. SVG spritesheet與CSS
- 14. Cocos2d SpriteSheet動畫
- 15. EaselJS MultiRow Spritesheet
- 16. 從AS3中的Spritesheet中提取精靈
- 17. CreateJS的Spritesheet類中的'Image Index'文檔?
- 18. Cocos2d Spritesheet not loading(spriteWithSpriteFrameName)
- 19. slick2D spritesheet不加載
- 20. 在spritesheet上計時
- 21. Javascript SpriteSheet不工作
- 22. 多圖像vs spritesheet
- 23. Spritesheet:附加參數
- 24. 最佳spritesheet算法
- 25. 在CSS中的相對Spritesheet動畫
- 26. Cocos2d v3.0 - Spritesheet中的Sprite動畫
- 27. Spritebuilder的Spritesheet偏移量
- 28. webgl的透明spritesheet動畫
- 29. Spritesheet或分離的PNG?
- 30. 使用XNA的SpriteSheet動畫
你見過這篇文章嗎?這似乎是大約相同的事情:http://stackoverflow.com/questions/745541/how-does-silverlight-image-clipping-work – LueTm 2011-04-30 18:20:42