2014-04-28 90 views
2

背景:Windows Phone 7(WP7)中的動畫最簡單的方法?

我真的很想一些動畫添加到我的小的基於文本的遊戲演示中,我一直在做,對於遊戲本身的主要代碼是幾乎沒有或迴旋處。

我對自己的進步感到滿意 - 但我很樂意爲它注入一些活力,並使它比目前通過動畫更好。

的問題:

我之前尋求幫助發現這些方法都涉及「Silverlight的」或「故事板」

作爲一個新手程序員,有人一般新的C#我不知道這些意味着什麼,或者看到它在任何真實的環境中工作到現在爲止。教程也非常模糊,程序員不會解釋他們的代碼或它的功能。

我想做什麼:

我希望當用戶按下一個按鈕,一個小動畫就開始玩了,有的地方一個單獨的動畫可能會不斷地對如一個橫幅動畫。

實施例:

當我按下一個按鈕:

  • 我想的動畫顯示,看起來類似於這將在屏幕上顯示爲一個小火焰的一個GIF動畫圖像。

  • 由於每頁最多隻有三/四個位置,因此我可以使用三個獨立的圖像盒。

我希望它能夠在現有的「圖像」結構內工作,可放入Visual Studio所見即所得的拖放系統中。

這裏是想什麼,我來實現,braizers到視頻的左側和右側上方類似火焰的東西的例子:

https://www.youtube.com/watch?v=kKmW9gNENJA

我正在使用:

我使用XAML,我根本不使用XNA。我只是將WP7用作cs和XAML的默認配置。

的粒子特效EXTRA例子:

雖然這是沒有關係的,下面的視頻中發現了「粒子效果」也是我想做的最終實現。

https://www.youtube.com/watch?v=7w3dJIGSzPo&list=PLE4TZmqEfiRIy-4vyGwfNhOAuI8YwXF7T&index=48


  • 所以,基本上,用簡單的英語 - 什麼是讓一個動畫在WP7應用程序使用eaisest,和最好的方式。

  • 而且,如何開始製作這樣的動畫?

感謝您的幫助。

+0

故事板確實是在WPF/Silverlight中動畫的正確方法。但是,您使用的是XNA或WP7 XAML(如WPF,但不完全相同)。你在使用哪一個?你提供了一些很好的信息,但是有一點代碼,並且知道你使用的是什麼技術會很好。 – BradleyDotNET

+0

嘿布拉德利。我正在使用XAML。 XNA是我想實際避免的有意思的遊戲相關的東西。 – user3486320

+0

好吧,粒子效果並不容易,但我很樂意幫助故事板。您是否查看了http://msdn.microsoft.com/en-us/library/system.windows.media.animation.storyboard(v = vs.110).aspx文檔?你能稍微縮小這個問題嗎?我會盡量把一個基本的故事板解釋作爲答案,但任何縮小都會非常有幫助。 – BradleyDotNET

回答

0

這是非常寬泛的,所以我會在片解決它:

  1. 「顆粒」的效果將是一個非常複雜的故事板。您鏈接的視頻顯然是使用XNA來處理應用程序的某些部分,這可能是粒子存在的地方,因爲使用該技術更簡單。

  2. 這裏沒有任何真正的理由使用圖像控件。微軟不支持GIF格式,所以你想要的任何動畫都必須手工完成。如果你只是想動畫一個靜態的「火焰」圖像,一個圖像控件將工作。這是我可以考慮使用的唯一案例。

  3. 現在的肉,這裏是一個示例故事板:

    <Storyboard> 
        <DoubleAnimation Storyboard.TargetName="Flame" Storyboard.TargetProperty="Opacity" From="0" To="1" Duration="0:0:1" RepeatBehavior="Forever" /> 
        <DoubleAnimationUsingKeyFrames Storyboard.TargetName="FlameTranslateTransform" Storyboard.TargetProperty="X" RepeatBehavior="Forever"> 
         <LinearDoubleKeyFrame KeyTime="0:0:0" Value="-100"/> 
         <LinearDoubleKeyFrame KeyTime="0:0:0.5" Value="0"/> 
         <LinearDoubleKeyFrame KeyTime="0:0:1" Value="1"/> 
        </DoubleAnimationUsingKeyFrames> 
    </Storyboard> 
    

假設有一個控制聲明如下:

<Image x:Name="Flame"> 
    <Image.RenderTransform x:Name="FlameTranslateTransform"> 
     <TranslateTransform X="0" Y="0"/> 
    </Image.RenderTransform> 
</Image> 

講解,你必須開始用故事板元素。這個元素包含動畫。動畫使用Storyboard.TargetName來設置它們將要執行的元素的名稱,並使用Storyboard.TargetProperty來設置要修改的屬性的名稱。

我給一個標準的動畫的兩個示例(使用FromTo這只是做兩個在指定Duration之間的線性插值)和關鍵幀動畫(其在規定時間內每個關鍵幀之間推移,我用線性插值)。

我也將RepeatBehavior設置爲Forever,所以它會持續循環。這個動畫會將火焰圖像從一側移到另一側,並將其淡入淡出。您可以命名故事板並在代碼隱藏處啓動它,或者使用觸發器:http://msdn.microsoft.com/en-us/library/ms744905(v=vs.110).aspx

請讓我知道,如果我能澄清任何事情,希望以上幫助!

+0

這個故事板可以在XAML中使用嗎?對不起,我只是迷失在這裏。 去更新主要評論。 – user3486320

+0

提供的代碼*是* XAML :)。所以我認爲你的問題的答案是肯定的。是否有一個特定的部分讓你感到困惑? – BradleyDotNET

+0

我不確定XAML是如何工作的,我的XAML似乎不適用於您提供的代碼。 – user3486320