我试图找出为什么当球位置与块位置完全相同并且锚点相同时该函数不执行 GameEnd 函数。
if (CGPointEqualToPoint(ball.position,block.position)) {
if (CGPointEqualToPoint(ball.anchorPoint,monster1.anchorPoint)) {
[self theGameEnd];
}
}
实施CGPointEqualToPoint
is
CG_INLINE bool __CGPointEqualToPoint(CGPoint point1, CGPoint point2)
{
return point1.x == point2.x && point1.y == point2.y;
}
...所以坐标必须绝对等于返回 true。
情况并非总是如此CGFloat
类型,即使像素看起来是对齐的。您在动画或游戏模拟代码中计算它们的方式可能会产生微小的错误。
您可以在比较之前尝试对值进行四舍五入,或者允许存在小偏差。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)