gpt4 book ai didi

sprite-kit - 如何正确使用 allContactedBodies?

转载 作者:行者123 更新时间:2023-12-04 02:24:35 25 4
gpt4 key购买 nike

我想使用 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}}]"

现在我只想说 ok 太好了,如果你看到名字:'theBall' 那么我们就连接上了。所以我尝试执行以下不起作用的代码。

if ([node.physicsBody.allContactedBodies containsObject:@"theBall"] ) {
NSLog(@"Connected");
}

我做错了什么?有什么想法吗?

谢谢。

最佳答案

allContactedBodies 属性返回一个 SKPhysicsBody 对象数组。您可以使用 SKPhysicsBody 的 node 属性访问每个 physicsBody 所附加的节点

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

关于sprite-kit - 如何正确使用 allContactedBodies?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23756011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com