1

我正在创建一个 Jigsaw Puzzle 游戏作为我的第一个 C# 程序(到目前为止自学了 3 周),并且我已经在其中走了很长一段路,以至于我可以拍摄位图,将其拆分为图像并制作部分每个图像在需要时透明。我有一组点表示碎片的侧面,绘制边界就可以了。Graphics Path将封装这些点,Region将 Path 对象作为定义它的参数。

我的问题是,在命中检测方面,C# 如何处理重叠的 System.Drawing Regions?如果一个区域与另一个区域重叠,两个区域会响应命中还是最后绘制的区域会受到命中?

我从阅读本教程中得到了这个想法。2D/RegionIsVisible.htm">http://www.java2s.com/Tutorial/CSharp/0480_2D/RegionIsVisible.htm 并意识到我可以调用 isVisible() 方法来确定要移动哪一组棋子。谢谢!

4

1 回答 1

0

实际上,我想出了一个更好的解决方案,只是使用 GraphicsPath 而不是使用区域。重叠不是问题。MouseEvents 关心的只是您单击的位置。任何 GraphicsPath 构造,无论它是否与另一个构造重叠,都是公平的游戏。

无论如何,问题解决了。相交的重叠区域或 GraphicsPath 不是问题!

我的 C# 故障排除游戏的当前进度。现在所有选项卡都是矩形的,但是根据我的新理解,将程序转换为具有弯曲选项卡应该是小菜一碟:

于 2012-07-26T23:10:25.177 回答