我正在为我的游戏引擎创建一个菜单系统,并希望知道如何在鼠标悬停在按钮上时检测到。当按钮是正方形,矩形或圆形时,这很简单,但我想知道如何处理不规则形状的按钮。
这是否可能,如果是,复杂性是否意味着简单地使用边界区域(方形或圆形)会更好?
答案 0 :(得分:1)
从纹理或曲面数据中制作一个位掩码。决定一项规则;例如,如果图像是100%透明或某种颜色,则将位掩码像素设置为0,否则将其设置为1.对光标执行相同操作。检查冲突时,只需检查位掩码位是否重叠。
答案 1 :(得分:0)
首先我想到的是使用数学函数。如果您知道曲线的等式,您可以通过简单地检查等式的右侧是大于还是小于“y”来计算该点是否低于或高于该值。
因此,如果你有简单的y = x*x
并想要检查点(2,1),你可以替换它并检查:
y = 2
x = 1*1 = 1
y> 1,点在曲线上方。对于相反的情况,采取点(1,2),我们得到:
y = 1
x = 2*2 = 4
y< x,点在曲线下。