我有一个来自Skeleton skeleton
事件的SkeletonFrameReady
。我有一个在 window 上画骨架的功能,
void DrawSkeleton(Skeleton s),
它以“骨架”为输入,并将骨架的2D图像绘制到我的窗口中。
现在,我想更改例如右手的x和y值,并使用相同的函数
void DrawSkeleton(Skeleton s)
将其绘制在窗口上。但是,当我尝试执行以下操作时:
skeleton.Joints[JointType.HandRight].Position.X = 3;
它不允许我这样做:
这可能是因为
Position
不是变量,是属性。问题:
如何复制
Skeleton
对象并更改该对象上Position
的Joint
值。 最佳答案
是的你可以。
您只需创建一个新的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
};
这是一个来自实际项目的示例,我们希望在不实际修改骨骼的情况下校正手的位置以调整鼠标