Detección del reproductor Kinect SDK

Acabo de crear un juego para 2 jugadores (como ShapeGame), pero el problema es que cuando uno de los jugadores sale de la escena del juego, no puedo detectar cuál (qué jugador) queda del juego.

Piensa que hay 2 coches en el juego. El primer jugador detectado (llámalo jugador1) usa el izquierdo y el jugador2 usa el derecho. Cuando el jugador1 abandonó la escena, repentinamente el jugador2 toma el control del automóvil izquierdo, y si el jugador1 se reincorpora al juego, el jugador1 retoma el control del automóvil izquierdo nuevamente y el jugador2 toma el control del derecho.

int id = 0; foreach (SkeletonData data in skeletonFrame.Skeletons) { if (SkeletonTrackingState.Tracked == data.TrackingState) { // do some work id++; } } 

La cosa es que el progtwig da id = 0 para el primer jugador detectado (llámalo player1) y 1 para el segundo jugador detectado (llámalo player2). Cuando el jugador 2 sale del juego y se reincorpora, no hay problema. De nuevo toma id = 1 . pero cuando el jugador1 se va del juego, el jugador2 toma id = 0 porque es el primer jugador detectado en este punto.

¿Alguna solución?

Cada jugador tiene un índice en la matriz del esqueleto:

 void nui_SkeletonFrameReady(object sender, SkeletonFrameReadyEventArgs e) { SkeletonFrame sf = e.SkeletonFrame; //check which skeletons in array are active and use that array indexes for player index SkeletonData player1 = sf.Skeletons[playerIndex1]; SkeletonData player2 = sf.Skeletons[playerIndex2]; 

Puedes usar ese índice para identificar a tus jugadores si uno se va y vuelve.
Pero si ambos jugadores dejan de ver a Kinect, no se garantiza que el índice de jugadores sea correcto cuando ingresen a la visibilidad de Kinect nuevamente.