如何解决Xcode CGRect冲突有多个CGRect?
| 我创建了一个游戏,其中的地板由高度不同的多个图像组成。(所以地板不是平坦的) 而不是打开一百万个if语句: 如果(CGRectIntersectsRect(ball1.frame,floor1.frame)){ } 如果(CGRectIntersectsRect(ball1.frame,floor2.frame)){ } 如果(CGRectIntersectsRect(ball1.frame,floor3.frame)){ } 如果(CGRectIntersectsRect(ball1.frame,floor4.frame)){ } //等等... 。 有没有一种方法可以使用1 if语句检查冲突?所有的UIImageView地板块都被命名为“ floor1,floor2,floor3,floor4等等” 谢谢! 边注: 如果我想使用CGRectIntersect代码并旋转图像,我正在检查交叉点,因为它似乎仍然只检查图像帧的碰撞,因此无论旋转还是不碰撞在同一位置。我是否可以同时旋转框架以解决此问题,或者是否需要使用其他代码(如果是的话)?解决方法
尽管我不太了解您的问题,但我想可以简化一下。
代替命名瓦片floor1,floor2,...,您应该使用数组。
这样,您可以将if语句折叠为3个语句:
for (int i = 0; i < num_tiles; i++) {
if (CGRectIntersectsRect(ball1.frame,floor[i].frame)) {
put code here
}
}
, 绝对更改您的命名方案,如果有2个或3个以上的项目,则item1,item2,item3永远不是正确的选择。如有必要,只需说
NSMutableArray* floors = [NSMutableArray array];
[floors addObject:floor1];
[floors addObject:floor2];
[floors addObject:floor3];
... etc
没有特别提示的代码之前。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。