XNA WP7加速计控制
我正在将一个游戏移植到一个XNA4.0WP7项目中,但在控件方面遇到了一些问题。我使用加速计来控制运动,但有时飞船会完全跳到屏幕的另一个区域。我有下面的控制代码XNA WP7加速计控制,xna,accelerometer,xna-4.0,Xna,Accelerometer,Xna 4.0,我正在将一个游戏移植到一个XNA4.0WP7项目中,但在控件方面遇到了一些问题。我使用加速计来控制运动,但有时飞船会完全跳到屏幕的另一个区域。我有下面的控制代码 Accelerometer _motion; Vector2 accelReading = new Vector2(); private float speed = 50.0f; //Initialize _motion = new Accelerometer(); _motion.R
Accelerometer _motion;
Vector2 accelReading = new Vector2();
private float speed = 50.0f;
//Initialize
_motion = new Accelerometer();
_motion.ReadingChanged += new EventHandler<AccelerometerReadingEventArgs>(AccelerometerReadingChanged);
_motion.Start();
//Method for Changed Readings
public void AccelerometerReadingChanged(object sender, AccelerometerReadingEventArgs e)
{
accelReading.X = (float)e.X;
accelReading.Y = (float)e.Y;
vel.X = accelReading.Y * speed;
vel.Y = accelReading.X * speed;
}
//Update
float elapsed = (float)gameTime.ElapsedGameTime.TotalSeconds;
pos += vel * elapsed;
vel *= 1 - elapsed;
accelerator\u运动;
Vector2 accelReading=新Vector2();
私人浮动速度=50.0f;
//初始化
_运动=新加速计();
_motion.ReadingChanged+=新事件处理程序(AccelerometerReadingChanged);
_运动。开始();
//改变读数的方法
公共无效AccelerometerRadingChanged(对象发送器,AccelerometerRadingEventargs e)
{
accelReading.X=(浮点)e.X;
accelReading.Y=(浮动)e.Y;
X级=加速度读数Y*速度;
Y级=加速度读数X*速度;
}
//更新
已用浮点=(浮点)gameTime.ElapsedGameTime.TotalSeconds;
pos+=水平*经过;
vel*=1-已用时间;
ReadingChanged
事件在WP 7.1中标记为不推荐,这是由于某些原因,可能是读取错误使用CurrentValueChanged
如果这对使用Motion
class尝试WP7没有帮助,那么它会更准确
谢谢您的回复!我改为使用CurrentValueChanged,但它仍然存在相同的问题。当我移动时,它将从屏幕顶部向下移动到底部。不确定是什么原因导致了这一点,也不确定精灵开关的方向。我想我知道可能出了什么问题,尝试降低速度,因为它是50,可能太快了