重叠检测布尔值提前触发求助:方块未重叠却提前变色
问题解决
你的重叠检测函数里x轴判断存在拼写错误:pos x 2是笔误,应该写成posx2,这个错误直接导致x轴的碰撞逻辑失效,出现方块未重叠就提前变色的问题。
修正后的函数代码:
boolean overlap(float posx1, float posx2, float posy1, float posy2) { if (posx1 > posx2 + size || posx1 + size < posx2 || posy1 > posy2 + size || posy1 + size < posy2) { return false; } else { return true; } }
原逻辑的思路是对的——通过判断两个矩形是否完全不重叠(x轴方向完全分离 或 y轴方向完全分离)来反向推导重叠状态,只要修正变量名拼写错误,x轴的判断就能正常工作。
内容的提问来源于stack exchange,提问作者Yoni De Rudder
相关产品推荐
相关产品推荐

