[Wii] Temas de Nunchuk

Buenas!

Veréis estoy "intentando" portar un juego de naves a wii que hice hace tiempo para PC y quiero que la nave se mueva con el stick del nunchuk... El problema es que me está volviendo loco y la wii no me lo reconoce el nunchuck.

Aquí os dejo la parte de código que estoy usando:

WPAD_ScanPads();

struct expansion_t exp;
WPAD_Expansion(0, &exp);

// Nunchuk
   if (exp.type == WPAD_EXP_NUNCHUK) {
      vec2b_t center = exp.nunchuk.js.center;
      GRRLIB_Printf(Letra.x, Letra.y+30, Letra.tex, 0xFFFFFFFF, Letra.size, "Nunchuk X: %d", exp.nunchuk.js.pos.x - center.x);
      GRRLIB_Printf(Letra.x, Letra.y+40, Letra.tex, 0xFFFFFFFF, Letra.size, "Nunchuk Y: %d", exp.nunchuk.js.pos.y - center.y);
      if((exp.nunchuk.js.ang>=315 || exp.nunchuk.js.ang<=center.y) && exp.nunchuk.js.mag>=0.9) { Ship.direccion = ARRIBA; Ship.y -= 2; }
      if((exp.nunchuk.js.ang>=90-center && exp.nunchuk.js.ang<=90+center.x) && exp.nunchuk.js.mag>=0.9) { Ship.direccion = DERECHA; Ship.x += 2; }
      if((exp.nunchuk.js.ang>=180-center && exp.nunchuk.js.ang<=180+center.y) && exp.nunchuk.js.mag>=0.9) { Ship.direccion = ABAJO; Ship.y += 2; }
      if((exp.nunchuk.js.ang>=270-center && exp.nunchuk.js.ang<=270+center.x) && exp.nunchuk.js.mag>=0.9) { Ship.direccion = IZQUIERDA; Ship.x -= 2; }
   }


Eso está dentro de una función junto con otras funciones del wiimote (que por cierto si me funciona perfectamente -.-U) a la que llamo desde el bucle principal.

Los printf es para ver si al menos se mueve o algo el stick, pero es que ni aparece el texto porque claro como no reconoce el nunchuk pues ni se mete en el if ._.

Por cierto al inicio del main, y despues de iniciar el modo de vídeo llamo a WPAD_SetDataFormat(WPAD_CHAN_0, WPAD_FMT_BTNS_ACC_IR); supongo que no tendrá nada que ver pero lo pongo por si acaso xD

En teoría debería de funcionar pero es que no entiendo porque leches no lo hace [+furioso]

En fin, a ver si me podéis echar una mano.

Salu2!!
Buenas.

En el manejo del Nunchuk, se que hay un fallo con el tema de los acelerometros y es posible que en la forma que tienes de usarlo tu tambien.

Es mejor que uses los valores del stick directamente exp.nunchuk.js.pos.x y exp.nunchuk.js.pos.y

Asigna un rango como zona muerta y asi evitaras interpretaciones erroneas

Saludos
Okk. Gracias Hermes. A ver si lo pruebo que ahora mismo esta la tele siendo ocupada por mi madre que está viendo lo de las tetas [+risas]

Salu2 y gracias!
2 respuestas