У меня большой опыт работы с этой библиотекой, и ваша проблема, скорее всего, вызвана тем, что вы так часто вызываете SetRumble, этот код:
void wm_WiimoteChanged(object sender, WiimoteChangedEventArgs args)
{
WiimoteState ws = args.WiimoteState;
if (ws.ButtonState.A == true)
{
wm.SetRumble(true);
}
else
{
wm.SetRumble(false);
}
}
Будет постоянно вызывать SetRumble независимо от того, выключен A илинет, рассмотрите возможность использования этого кода вместо этого:
bool rumbleOn = false;
void wm_WiimoteChanged(object sender, WiimoteChangedEventArgs args)
{
WiimoteState ws = args.WiimoteState;
bool newRumble = (ws.ButtonState.A == true);
if (rumbleOn != newRumble)
{
rumbleOn = newRumble;
wm.SetRumble(rumbleOn);
}
}
Таким образом, метод set rumble вызывается только тогда, когда требуется, и не постоянно отправляет выходные отчеты в WiiMote, что приводит к перегрузке шины Bluetooth.