Kinect SDK 播放器检测
Posted
技术标签:
【中文标题】Kinect SDK 播放器检测【英文标题】:Kinect SDK player detection 【发布时间】:2012-05-12 09:33:26 【问题描述】:我刚刚创建了一个 2 人游戏(例如 ShapeGame)但问题是当其中一名玩家离开游戏场景时,我无法检测到哪个(哪个玩家)离开了游戏.
认为游戏中有 2 辆汽车。第一个检测到的播放器(称为 player1)使用左侧播放器,播放器 2 使用右侧播放器。当玩家1离开场景时,玩家2突然控制了左车,如果玩家1重新加入游戏,玩家1又重新控制了左车,玩家2控制了右车。
int id = 0;
foreach (SkeletonData data in skeletonFrame.Skeletons)
if (SkeletonTrackingState.Tracked == data.TrackingState)
// do some work
id++;
问题是程序为第一个检测到的玩家(称为 player1)提供id = 0
,为第二个检测到的玩家(称为 player2)提供 1。当玩家2离开游戏并重新加入时,没有问题。它再次需要id = 1
。但是当玩家 1 离开游戏时,玩家 2 会选择id = 0
,因为此时它是第一个检测到的玩家。
有什么解决办法吗?
【问题讨论】:
【参考方案1】:每个玩家在 Skeleton 数组中都有一个索引:
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];
您可以使用该索引来识别您的玩家是否离开和回来。 但是,如果两个玩家都离开了 Kinect 的视线,那么当他们再次进入 Kinect 可见性时,玩家索引并不正确。
【讨论】:
以上是关于Kinect SDK 播放器检测的主要内容,如果未能解决你的问题,请参考以下文章
当前播放状态的 Spotify Web SDK / Web API 问题
如何检测其他应用程序的音频是不是在后台播放? (UWP,Windows 10)
支持 Chromecast 的 Android SDK 推荐视频播放器