我刚刚创建了一个2人游戏(比如ShapeGame),但问题是当其中一个玩家离开游戏场景时,我无法察觉哪一个(哪个玩家)从游戏中离开.
认为游戏中有2辆车.首先检测到的玩家(称之为player1)使用左侧玩家而玩家2使用右侧玩家.当player1离开场景时,突然player2控制左车,如果player1重新加入游戏,则player1再次取回对左车的控制权,并且player2控制右车.
int id = 0;
foreach (SkeletonData data in skeletonFrame.Skeletons)
{
if (SkeletonTrackingState.Tracked == data.TrackingState)
{
// do some work
id++;
}
}
Run Code Online (Sandbox Code Playgroud)
事情是id = 0
第一个检测到的玩家(称之为player1)的程序给出,第二个被检测的玩家(称之为player2)为1.当player2从游戏中退出并重新加入时,没有问题.它再次需要id = 1
.但是当玩家1离开游戏时,玩家2 id = 0
因为它是此时第一个被检测到的玩家.
有解决方案吗
我目前正在使用Windows 8.1上的Microsoft Kinect for Windows SDK 2进行编程.事情进展顺利,在家庭开发环境中,与"现实世界"相比,背景中没有太多噪音.
我想向那些具有Kinect"真实世界"应用经验的人寻求建议.Kinect(尤其是v2)如何在现场环境中与过路人,旁观者和背景中的意外物体相比?我确实希望,在从Kinect传感器到用户的空间中,通常不会有干扰 - 我现在非常注意的是背景噪声.
虽然我知道Kinect在阳光直射下(无论是在传感器上还是在用户身上)都不能很好地跟踪 - 我是否需要将某些照明条件或其他外部因素纳入代码?
我要找的答案是:
朋友让我帮助他完成一个项目,并试图了解使用Kinect平台使用.NET平台获取身体位置数据是多么容易.例如,Kinect是否仅提供传感器范围内的原始数据流,或者是否可以选择使用"智能"数据流来识别人员,人员元素以及人员/元素的位置变化.