【发布时间】:2011-06-28 04:16:59
【问题描述】:
我有一个 iPhone 游戏,其中可能有 30 个(或更多)CGRect,我需要一种快速的方法来确定用户是否触摸了一个。我之前一直在考虑使用以下设置来检测用户是否在触摸开始时触摸了Cocos2d 中的CGRect。所以我有一个 CGRects 的向量(我使用的是 Obj-C++):
for (int i = 0; i < (int) vec_of_cgrects; i++) {
if (CGRectContainsPoint(vec_of_cgrects[i], location) {
//Do what I need to do if user touches one of the rectangles
}
}
但这不是那么有效,我想知道这是否是检测用户是否触摸矩形向量的特定矩形的最佳方法,或者是否有更好的方法。
【问题讨论】:
-
30 确实不是一个大数字。很高兴你没有以可能涉及 NSArray 和 NSValue 的“Objective-C 方式”做事......
-
@tc.: 至少 30... 哈哈,我本来打算使用 NSMutableArray 但它们不能存储结构。然后我就像是的!现在我开始使用 C++,这是我学到的第一门语言……我厌倦了 Obj-C 的消息传递系统……
标签: iphone cocos2d-iphone collision-detection objective-c++