我想使用 allContactedBodies 而不是 didBeginContact 和 didEndContact。
当我做 :
NSLog(@"%@", node.physicsBody.allContactedBodies );
与物体发生正确的接触,我得到类似的信息:
"<SKPhysicsBody> type:<Rectangle> representedObject:[<SKNode> name:'theBall' position:{149.55787658691406, 91.00054931640625} accumulatedFrame:{{70.462608337402344, -16.016334533691406}, {112.56977081298828, 127.18753814697266}}]"
现在我想做的就是说,好吧,太好了,如果您看到名称:“theBall”,那么我们就已连接。
所以我尝试执行以下代码,但不起作用。
if ([node.physicsBody.allContactedBodies containsObject:@"theBall"] ) {
NSLog(@"Connected");
}
我究竟做错了什么?任何想法?
Thanks.
The allContactedBodies
属性返回 SKPhysicsBody 对象的数组。您可以使用以下命令访问每个物理主体所附加的节点node
SKPhysicsBody 的属性
NSArray *tempArray = [yourNode.physicsBody allContactedBodies];
for(SKPhysicsBody *body in tempArray)
{
if([body.node.name isEqualToString:@"theBall"])
NSLog(@"found the ball");
}
在 Swift 中,上面相同的代码可以写成:
val ballNode: SKNode? = yourNode.physicsBody.allContactedBodies().first(where { $0.node.name == "theBall" })?.node
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)