介紹
現在我們用Windows Phone 7創造一個益智遊戲,使用Silverlight和XNA架構音頻API的功能。
入門
安裝WP7的工具
安裝vs 2010
安裝程式將自動下載並安裝所需的組件。
如果你想使用的Expression Blend 4 WP7的拓展,下載並安裝Expression Blend 。
一旦安裝過程完成後,重新啟動Visual Studio 2010中。
遊戲介面
這是主要的使用者介面 ApplicationPage。當你建立一個新的 Windows Phone 應用程式 這是預設的代碼。
PageOrientation
Windows Phone應用程式的託管應用程式中的一個最明顯的影響之一是如何與之設定的布局方向, ApplicationPage有一個可設定的屬性命名SupportedOrientations。該枚舉值可以是橫屏或PortraitOrLandscape的。分配給它一個值,無論是在XAML或代碼中,我們可以控制應用程式如何能變換。
SecurityCritical是大多數Silverlight開發人員熟悉的屬性。
請注意,這是Silverlight的安全,並沒有具體到 Windows 手機。
<TextBlock Visibility="{Binding ElementName=Page, Path=PageOrientation, Converter={StaticResource OrientationToVisibilityConverter}, ConverterParameter= Landscape}" .../>
public object Convert(object value, Type targetType, object parameter, CultureInfo culture){var orientation = (PageOrientation)value;string showWhenOrientation = parameter.ToString().ToLower();bool show = false;switch (orientation){case PageOrientation.Portrait:case PageOrientation.PortraitDown:case PageOrientation.PortraitUp:show = showWhenOrientation == "vertical";break;case PageOrientation.Landscape:case PageOrientation.LandscapeLeft:case PageOrientation.LandscapeRight:show = showWhenOrientation == "landscape";break;}return show ? Visibility.Visible : Visibility.Collapsed;}
使用XNA Framework的音頻API
我驚喜的是我們可以容易的使用XNA架構來播放音效。需要即時播放。被警告,但它有挑剔的格式。我發現,只有PCM格式的WAV檔案提供了支援。我用GoldWave儲存所有到PCM格式的音頻。對於較長的片段,如果用MP3,更有意義,但你需要使用MediaElement控制項。
所有的聲音效果在MainPage.xaml.cs中的代碼定義旁邊以下摘錄示範:
readonly SoundEffect footStepSoundEffect = SoundEffect.FromStream(TitleContainer.OpenStream("Audio/Footstep.wav"));
好了,由於時間關係,後面我們會慢慢分析後面的實現方式,以及相關技術。不過這次將放出所有原始碼
該文章同步發布到codewp7 滷麵網 wp7開發論壇: http://www.codewp7.com/forum.php?mod=viewthread&tid=123&extra=
原始碼請猛擊這裡