Вопрос по c# – Обнаружение проигрывателя Kinect SDK

8

Я только что создал игру для 2 игроков (например, ShapeGame)but the problem is when one of the players lefts from the game scene, I can't detect which one (which player) left from the game.

Подумайте, что в игре 2 машины. Первый обнаруженный игрок (назовите его player1) использует левого, а player2 - правого. Когда игрок 1 покидает сцену, игрок внезапно получает контроль над левой машиной, и, если игрок 1 возвращается в игру, игрок 1 снова получает контроль над левой машиной, а игрок 2 получает контроль над правой машиной.

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

        id++;
    }
}

Дело в том, что программа даетid = 0 для первого обнаруженного игрока (назовите его player1) и 1 для второго обнаруженного игрока (назовите его player2). Когда игрок2 выходит из игры и возвращается, проблем нет. Это снова занимаетid = 1, но когда игрок1 выходит из игры, игрок2 беретid = 0 из-за этого является первым обнаруженным игроком в этой точке.

Любые решения?

Ваш Ответ

1   ответ
3

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];

Error: User Rate Limit Exceeded
Но еслиbothError: User Rate Limit Exceeded

Похожие вопросы