我在精灵工具包中有一系列精灵,在我的更新方法中,我检查这些精灵是否从屏幕底部掉下来。如果他们这样做,我将他们从他们的父母中删除,我将他们从他们的阵列中删除..我想知道如果他们这样做,如果这是最好的做法吗?是否会降低性能?如果是这样,那么实现这个目标的最佳方法是什么?
这是我的代码:
-(void)update:(CFTimeInterval)currentTime {
// Detect when animals fall off bottom of screen
NSMutableArray *animalsToDiscard = [NSMutableArray array];
for (SKSpriteNode* node in animalsArray) {
if (node.position.y < -node.size.height) {
NSLog(@"Remove Animal - Lose Life");
[node removeFromParent];
[animalsToDiscard addObject:node];
}
}
[animalsArray removeObjectsInArray:animalsToDiscard];
}
答案 0 :(得分:1)
您应该使用内置的物理世界来帮助解决此任务。基本上,你会建立一个“地板”,如果你的动物接触它,移除动物节点。
https://stackoverflow.com/a/24195006/2494064
在此链接中,您的“动物”将等同于“泡沫”。如果您进行替换,代码将起作用。