gpt4 book ai didi

sprite-kit - SKSpriteNode,添加到父钩子(Hook)/从父钩子(Hook)中删除

转载 作者:行者123 更新时间:2023-12-04 18:08:51 24 4
gpt4 key购买 nike

当 SKSpriteNode(或 SKNode)被添加到父节点或从父节点移除时,类中是否有任何(最佳实践)方法来 Hook 事件?

最佳答案

不需要 Kobold Kit,您可以子类化一个 SKSpriteNode(或任何 SKNode 实际上)并扩展 removeFromParent SKNodes 拥有的功能。

例如:

FLSprite.m:

#import "FLSprite.h"

@implementation FLSprite

-(void)removeFromParent {
[super removeFromParent];
NSLog(@"I print when I'm Removed");
//here's where you'll add your hooking functions
}

@end

MyScene.m:
-(id)initWithSize:(CGSize)size {    
if (self = [super initWithSize:size]) {
FLSprite* sprite = [FLSprite spriteNodeWithColor:[UIColor blackColor] size:CGSizeMake(200, 100)];
[sprite setPosition:CGPointMake(100.0, 50.0)];
[self addChild:sprite];
[sprite removeFromParent];

}
return self;
}

至于添加一个 child ,因为你添加了一个 child (在大多数情况下) [self addChild:node];您需要扩展 addChild在您要添加的 View 中。例如,您将以下内容添加到您的 MyScene.m ,因为我们正在将 Sprite 添加到该 View
-(void)addChild:(SKNode *)node {
[super addChild:node];
NSLog(@"added child");
}

正如他在帖子中解释的那样,这几乎就是 Steffen Itterheim 为实现此功能所做的工作。

关于sprite-kit - SKSpriteNode,添加到父钩子(Hook)/从父钩子(Hook)中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19648578/

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