我一直在尝试学习 XNA,虽然我无法访问书籍,但我一直依靠 MSDN 和教程来指导我,我现在可以绘制精灵并改变它们的位置并使用相交,我现在试图让一个基本的加速度计适用于 Windows Phone 7 和 8 手机。
我有一些积木和一个球。我希望能够通过向上/向下/向左/向右倾斜手机来移动球(或滚动它)。
如果您在下面看到,绿点代表球可以移动的区域。虽然深灰色块只是边界,如果球碰到它们就会反弹(稍后,我不关心这部分)。
我的问题是,如何让球正确响应倾斜运动?
为了尝试获得非常基本的倾斜运动,我有:
protected override void Initialize()
{
// TODO: Add your initialization logic here
Accelerometer accelerometer = new Accelerometer();
accelerometer.CurrentValueChanged += accelerometer_CurrentValueChanged;
accelerometer.Start();
base.Initialize();
}
void accelerometer_CurrentValueChanged(object sender, SensorReadingEventArgs<AccelerometerReading> e)
{
this.squarePosition.X = (float)e.SensorReading.Acceleration.Z * GraphicsDevice.Viewport.Width + GraphicsDevice.Viewport.Width / 2.0f;
if (Window.CurrentOrientation == DisplayOrientation.LandscapeLeft)
{
this.squarePosition.X = +(float)e.SensorReading.Acceleration.X * GraphicsDevice.Viewport.Width + GraphicsDevice.Viewport.Width / 2;
}
else
{
this.squarePosition.X = (float)e.SensorReading.Acceleration.X * GraphicsDevice.Viewport.Width + GraphicsDevice.Viewport.Width / 2;
}
}
但这绝对令人震惊。这是非常紧张的,就像,物体不断地跳来跳去,好像它正在癫痫发作什么的,我什至不确定这是不是正确的处理方式。