这里初始化 s = false,如果不做检测直接 return !s,返回的就是 true 代表撞到铅笔了。
中间检测的代码是图中的区域,意思是当小鸟在这些区域的时候表示没有碰撞 赋值 s = true,return !s。返回的就是 false 了。
其实这是个反向逻辑,假设是碰撞的,然后看哪些情况是没有碰撞,如果符合条件就把 s = true,return 的就是 false,剩下的情况就是碰撞了,直接 return true;
其实这里的检测还有个 bug,就是小鸟可以一直在上面铅笔的上面一直飞,这个留给大家解决(很简单,参考地板碰撞检测)。