與this question類似,但正在尋找可在XNA遊戲環境下工作的答案。如何在XNA遊戲中確定Windows Phone 7的方向?
如何確定設備是橫向還是縱向?在一般問題中給出的答案依賴於PhoneApplicationPage內置的功能。據我所知,你通常不會使用XNA遊戲在Windows Phone 7
與this question類似,但正在尋找可在XNA遊戲環境下工作的答案。如何在XNA遊戲中確定Windows Phone 7的方向?
如何確定設備是橫向還是縱向?在一般問題中給出的答案依賴於PhoneApplicationPage內置的功能。據我所知,你通常不會使用XNA遊戲在Windows Phone 7
上下文從尼克Gravelyn內的類:http://forums.xna.com/forums/p/49684/298915.aspx#298915 加速度計是不能在XNA框架了。您可以通過以下步驟訪問:
嘗試這種情況:
try
{
AccelerometerSensor.Default.ReadingChanged += Default_ReadingChanged;
AccelerometerSensor.Default.Start();
}
catch (AccelerometerStartFailedException)
{
}
像這樣:
void Default_ReadingChanged(object sender, AccelerometerReadingAsyncEventArgs e)
{
}
你很好走。但請記住,加速度計不適用於仿真器,所以如果沒有設備,就無法真正測試。您確實需要try/catch,因爲Start會在模擬器中拋出異常,因爲它不支持加速度計。
這裏的肖恩哈格里夫斯博客的一篇文章
如果你想既橫向和縱向之間自動切換的手機旋轉:LandscapeLeft之間
graphics.SupportedOrientations = DisplayOrientation.Portrait |
DisplayOrientation.LandscapeLeft |
DisplayOrientation.LandscapeRight;
交換和LandscapeRight可以在沒有遊戲特別幫助的情況下自動處理,因此默認情況下處於啓用狀態。但在橫向和縱向之間切換會改變後緩衝器的尺寸(短而寬與高與低),這很可能會要求您調整屏幕布局。並非所有遊戲都能夠處理此問題(並且某些設計只能在一種方式上有意義),因此只有通過設置SupportedOrientations來顯式選擇加入的遊戲才能在風景和肖像之間進行動態切換。
這看起來已經改變了。爲了勾住'閱讀改變'你必須創建一個加速度計,然後啓動它。所需的代碼可以在MSDN上找到。 Retrieving Accelerometer Input (Windows Phone)
它看起來是這樣的:
#if WINDOWS_PHONE
Accelerometer accelerometer;
try
{
accelerometer = new Accelerometer();
accelerometer.ReadingChanged += new EventHandler<AccelerometerReadingEventArgs>(a_ReadingChanged);
accelerometer.Start();
}
catch (AccelerometerFailedException e)
{
}
...
}
void a_ReadingChanged(object sender, AccelerometerReadingEventArgs e)
{
//this function is not supported by the window 7 phone emulator
throw new NotImplementedException();
}
#endif
鑑於基於加速計的iPhone遊戲的數量,從XNA除去支持似乎是一個奇怪的選擇。 – 2010-03-19 22:58:51
這是因爲他們需要公開它的Silverlight應用程序,所以他們不能依賴於XNA應用程序 – 2010-03-23 00:03:09