我有一个来自Skeleton skeleton事件的SkeletonFrameReady。我有一个在 window 上画骨架的功能,

void DrawSkeleton(Skeleton s),

它以“骨架”为输入,并将骨架的2D图像绘制到我的窗口中。

现在,我想更改例如右手的x和y值,并使用相同的函数void DrawSkeleton(Skeleton s)将其绘制在窗口上。

但是,当我尝试执行以下操作时:
skeleton.Joints[JointType.HandRight].Position.X = 3;

它不允许我这样做:



这可能是因为Position不是变量,是属性。

问题:

如何复制Skeleton对象并更改该对象上PositionJoint值。

最佳答案

是的你可以。

您只需创建一个新的Position对象并覆盖您喜欢的Position。

var movedPosition = new SkeletonPoint
{
    X = (float)(mouseJoint.Position.X - 0.4),
    Y = (float)(mouseJoint.Position.Y - 0.3)
};

var movedJoint = new Joint
{
    Position = movedPosition
};

这是一个来自实际项目的示例,我们希望在不实际修改骨骼的情况下校正手的位置以调整鼠标

10-08 14:49