你好,我已经花了一些时间尝试解决这个问题,希望你能引导我找到正确的方向!
目标是在我的wpf游戏中实现“手电筒”效果,为此我追求了两个主要选项。
1.使用一个黑色的png图像,该图像的宽度和高度为窗口的200%,其中心有一个洞,然后通过鼠标移动图像。 2.使用与窗口大小相同的黑色图像,并具有一个不透明度掩码元素,该元素是圆形形状,可以查看黑色层下面的内容。这个圆随着鼠标移动而移动。
我无法使这两个选项都起作用,在wpf中当您拥有不透明度掩码时,似乎无法移动“穿过”图层的元素。对于大型图像方法,我无法将鼠标Point对象转换为图像的位置。以下是获取鼠标位置的潜在方法,我无法将图像移动到“ point”位置。
屏幕指针
获取位置信息
最终的游戏将使用kinect进行控制,因此如果有使用kinect库或原生方法实现的方式,也可以考虑。谢谢。
目标是在我的wpf游戏中实现“手电筒”效果,为此我追求了两个主要选项。
1.使用一个黑色的png图像,该图像的宽度和高度为窗口的200%,其中心有一个洞,然后通过鼠标移动图像。 2.使用与窗口大小相同的黑色图像,并具有一个不透明度掩码元素,该元素是圆形形状,可以查看黑色层下面的内容。这个圆随着鼠标移动而移动。
我无法使这两个选项都起作用,在wpf中当您拥有不透明度掩码时,似乎无法移动“穿过”图层的元素。对于大型图像方法,我无法将鼠标Point对象转换为图像的位置。以下是获取鼠标位置的潜在方法,我无法将图像移动到“ point”位置。
屏幕指针
private void MouseCordinateMethod(object sender, MouseEventArgs e)
{
var relativePosition = e.GetPosition(this);
var point= PointToScreen(relativePosition);
_x.HorizontalOffset = point.X;
_x.VerticalOffset = point.Y;
}
获取位置信息
var point = e.GetPosition(this.YourControl);
最终的游戏将使用kinect进行控制,因此如果有使用kinect库或原生方法实现的方式,也可以考虑。谢谢。