不知道大家有没有碰到过点击一个东西后,同时也点到了相同位置的下面的东西
我一开始的做法因为只考虑下面的东西和上面的窗口两层,所以就直接写了“如果窗口存在,则下面的东西点击事件会跳出”(所有窗口有一个父对象管理,这样方便检查窗口的存在)
然后遇到了问题:如果某个点击会关闭窗口,那么它就能点到下面的东西
于是用一个全局变量来管理这一帧有没有点过东西,在begin step时置零,在某个点击事件时检查并置1
又有一个问题:对象的执行顺序
对于层次较少的项目够用了,至少可以解决关闭按钮点穿的问题
如果要更严谨一点,可以用一个对象专门管理点击事件
管理点击的对象的全局鼠标点击事件里
用instance_position_list()获取鼠标点击位置所有对象
遍历对象,找到深度最低,且可以被点击的对象
我是用一个clickable来标记可以被点击的对象,(还用了一个clickableNow来标记这个对象现在是否会因为其他原因而不能被点顺延到下一个,其实也没什么必要,没有用到的场合,毕竟点击通常会被灰色按钮拦截而不是顺眼才对)
然后
with(选出来的对象(记得判断非noone,可能noone也不会出事倒是))
{
event_user
}
把点击事件放在event user里(所有点击事件用同一个编号)
Gamemaker用户的一个习惯就是相信自己碰到的问题都是Gamemaker的,用别的引擎的人肯定不会碰到。所以我也不清楚这个对别的引擎有没有用,可能有吧。


暂无关于此日志的评论。