当 SKSpriteNode(或 SKNode)添加到父节点或从父节点中删除时,类中是否有任何(最佳实践)方法来挂钩事件?
无需 Kobold Kit,您可以对 SKSpriteNode(或任何 SKNode 事实上)进行子类化并扩展removeFromParent
SKNode 拥有的功能。
例如:
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
我的场景.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;
}
至于添加孩子,因为您本身添加了孩子(在大多数情况下)[self addChild:node];
你需要延长addChild
在您要添加的视图中。例如,您将添加以下内容到您的MyScene.m
,因为我们要将精灵添加到该视图中
-(void)addChild:(SKNode *)node {
[super addChild:node];
NSLog(@"added child");
}
正如 Steffen Itterheim 在他的帖子中所解释的那样,这几乎就是 Steffen Itterheim 为实现此功能所做的事情。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)