北京市东城区建国门内大街28号民生金融中心C座23层 guanwang@www.j9.com

公司新闻

游戏界面与规则实验:重叠按钮的点击层级(独立例04)

2026-10-19

本篇用一组独立的虚构记录研究重叠按钮的点击层级。先规定输入和边界,再逐步推演结果;所有规则都为练习而设,不代表某个真实产品的默认实现。你可以先遮住答案,用纸记录中间状态,再比较第一处产生分歧的位置,而不只看最终结论。

机制与注意点

多个按钮占据同一区域时,先判断点击是否落入矩形,再按层级选中最前面的对象。最近的中心点并不是本例的命中规则。

矩形左上边包含、右下边不包含。隐藏的按钮不参与命中;没有命中就返回空结果,而不是随意把操作交给相邻按钮。

明确规则与输入

可见按钮才参与,左上边包含,右下边不包含。候选中层号大者优先,同层编号小者优先。None表示没有按钮被选中。

按钮0:左上(16,3),宽9高11,层0,可见True 按钮1:左上(20,22),宽16高18,层3,可见True 按钮2:左上(18,7),宽19高16,层3,可见True 按钮3:左上(11,9),宽15高8,层2,可见True 按钮4:左上(4,14),宽11高16,层3,可见True 按钮5:左上(20,6),宽10高10,层2,可见True 点击序列[[2, 16], [32, 43], [2, 38], [37, 43], [15, 20], [41, 21], [12, 28], [42, 40], [16, 3], [25, 14]]

逐步核对记录

点击(2,16)命中候选[],按层级和编号最终选择None。

点击(32,43)命中候选[],按层级和编号最终选择None。

点击(2,38)命中候选[],按层级和编号最终选择None。

点击(37,43)命中候选[],按层级和编号最终选择None。

点击(15,20)命中候选[],按层级和编号最终选择None。

点击(41,21)命中候选[],按层级和编号最终选择None。

点击(12,28)命中候选[4],按层级和编号最终选择4。

点击(42,40)命中候选[],按层级和编号最终选择None。

点击(16,3)命中候选[0],按层级和编号最终选择0。

点击(25,14)命中候选[2, 3, 5],按层级和编号最终选择2。

结果及另一种检查

最终选中序列为[None, None, None, None, None, None, 4, None, 0, 2]。

先把可见按钮按优先级从高到低排好,再对每次点击逐个查矩形,第一个命中的应与先找候选再排序相同。测试角点时要同时核对两轴,不能只看其中一条边。

自己动手复盘

复核时把数据、判断条件和更新后的状态分开写。相等边界、编号从零还是从一开始、先筛选还是先排序,都可能造成看似微小却会延续到后续步骤的差别。不要为了让最后数字吻合而跳过中间错误;先找到第一处不同,再按同一规则重新推演。

进一步练习只改变一项输入,例如一个边界值、一个标签或一次操作,先预测受影响的部分,再计算新结果。把不受影响的部分也记录下来,能更清楚地看出规则的作用范围。应用到真实游戏前,先核对其帮助说明或在可重复场景中验证条件,避免把本例的虚构约定当成通用标准。