gpt4 book ai didi

objective-c - 如何使用回调函数访问 runAction 的目标?

转载 作者:行者123 更新时间:2023-11-29 04:45:28 24 4
gpt4 key购买 nike

我有以下代码:

    id enterRight = [CCMoveBy actionWithDuration:1.5f position:ccp(-600, 0)];
id exitLeft = [CCMoveBy actionWithDuration:1.5f position:ccp(-600, 0)];
id reset = [CCMoveBy actionWithDuration:0 position:ccp(1200, 0)];
id actionCallFunc = [CCCallFunc actionWithTarget:self selector:@selector(cleanPatterns)];

id seq1 = [CCSequence actions: [[exitLeft copy] autorelease],
[[actionCallFunc copy] autorelease], [[reset copy] autorelease],
[[enterRight copy] autorelease], nil];


[sprite runAction: [CCRepeatForever actionWithAction:[seq1 copy]]];

我希望我的回调函数 cleanPatterns 能够引用对象“sprite”。

是否有某种方法可以让该方法发现 runAction 发生在哪个对象上?

最佳答案

正如 Ultrakorne 在他的评论中提到的,如果您按如下方式定义目标对象,则可以直接在回调中访问目标对象:

-(void) cleanPatterns:(id)sender 
{
// sender is your target object
CCSprite *sprite = (CCSprite *)sender;

// Then do something to your sprite...
}

回到您定义 actionCallFunc 的位置,请记住在 cleanPatterns 后面附加一个冒号,因为您的回调方法现在需要一个参数:

id actionCallFunc = [CCCallFuncN actionWithTarget:self selector:@selector(cleanPatterns:)];

关于objective-c - 如何使用回调函数访问 runAction 的目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9705782/

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