与this question类似,但寻找可在XNA游戏环境中使用的答案。
如何确定设备是横向还是纵向?一般问题中给出的答案依赖于PhoneApplicationPage中内置的功能。 AFAIK,您通常不会在Windows Phone 7上的XNA游戏环境中使用该类。
答案 0 :(得分:3)
来自Nick Gravelyn: http://forums.xna.com/forums/p/49684/298915.aspx#298915 Accelerometer不再位于XNA Framework中。您可以通过以下步骤访问它:
试试这个:
try
{
AccelerometerSensor.Default.ReadingChanged += Default_ReadingChanged;
AccelerometerSensor.Default.Start();
}
catch (AccelerometerStartFailedException)
{
}
像这样:
void Default_ReadingChanged(object sender, AccelerometerReadingAsyncEventArgs e)
{
}
你很高兴。但请记住,加速度计不能与仿真器一起使用,因此没有设备就无法真正测试它。你确实需要try / catch,因为Start会在模拟器中抛出异常,因为它不支持加速度计。
答案 1 :(得分:1)
这似乎已经改变了。为了连接'读取已更改',您必须创建一个加速度计,然后启动它。所需的代码可以在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
答案 2 :(得分:0)