isStrike() 为什么return !s 而不是s?逻辑怎么反了?既然这样为什么不直接初始化 s=true
来源:4-21 小游戏重新开始逻辑实现
Qub
2018-03-12
写回答
2回答
-
qq_许Y1世承诺_04041127
2018-03-22
这里初始化 s = false,如果不做检测直接 return !s,返回的就是 true 代表撞到铅笔了。
中间检测的代码是图中的区域,意思是当小鸟在这些区域的时候表示没有碰撞 赋值 s = true,return !s。返回的就是 false 了。
其实这是个反向逻辑,假设是碰撞的,然后看哪些情况是没有碰撞,如果符合条件就把 s = true,return 的就是 false,剩下的情况就是碰撞了,直接 return true;
其实这里的检测还有个 bug,就是小鸟可以一直在上面铅笔的上面一直飞,这个留给大家解决(很简单,参考地板碰撞检测)。
232019-03-13 -
傅猿猿
2018-03-15
怎么写都可以呀,只要TRUE和FALSE的状态对就行了呀,当时边讲边敲就写了个有点绕的逻辑,精简也是OK的呀,真仔细,回头等我出院了也精简下代码
022019-03-13
相似问题