xna Phidget Пространственный акселерометр сглаживания - PullRequest
0 голосов
/ 15 февраля 2012

Я использую пространственный 0/0/3 акселерометр phidget в игре xna, которую я разрабатываю, и нашел эту запись здесь, в Stackoverflow

Я пыталсяреализовать указанный код:

const SIZE = 10;
float[] xVals = new float[SIZE];

float xAvg = 0;

function runAverage(float newX){
  xAvg += newX/SIZE;
  xVals.push(newX);
  if(xVals.length > SIZE){
    xAvg -= xVals.pop()/SIZE;
  }
}

Я использую это для своей реализации: мой акселерометр возвращает значения каждые 168 мс.

private const int SIZE = 10;
private static Stack<Vector3> axisVals = new Stack<Vector3>(SIZE);
private static Vector3 axisAvg = new Vector3();

public static Vector3 runningAverage(Vector3 newAxis)
{
  axisAvg += newAxis / SIZE;
  axisVals.Push(newAxis);

  if (axisVals.Count > SIZE)
  {
    axisAvg -= axisVals.Pop() / SIZE;
  }
  return axisAvg;
}

РЕДАКТИРОВАТЬ:

Я забыл опубликовать проблему.Как заявил г-н Дакетт.

Проблема, с которой я столкнулся, заключалась в том, что после заполнения стека игра перестала реагировать на движение акселерометра.

...