Ios cocos2d v3 CCActionCallFunc与对象?

Ios cocos2d v3 CCActionCallFunc与对象?,ios,cocos2d-iphone,Ios,Cocos2d Iphone,在cocos2d中,我以前使用过CCCallFuncN和CCCallFuncND 我试图调用一个函数并将对象发送到该函数。我已经尝试了一些似乎不起作用的实现。我最近对CCActionCallBlock的尝试如下所示: [gun runAction:[CCActionRepeatForever actionWithAction:[CCActionCallBlock actionWithBlock:^ { CGPoint gunPoint = CGPointMake(gun.position

在cocos2d中,我以前使用过CCCallFuncN和CCCallFuncND

我试图调用一个函数并将对象发送到该函数。我已经尝试了一些似乎不起作用的实现。我最近对CCActionCallBlock的尝试如下所示:

[gun runAction:[CCActionRepeatForever actionWithAction:[CCActionCallBlock actionWithBlock:^
{
    CGPoint gunPoint = CGPointMake(gun.position.x - gun.contentSize.width/2, gun.position.y);

    CGPoint shootVector = ccpSub(gunPoint, _playerPos);
    float gunAngle = -1 * ccpToAngle(shootVector);
    gun.rotation = CC_RADIANS_TO_DEGREES(gunAngle);
}]]];
我收到以下错误:

-[CCActionCallBlock]:发送到实例0x15f84c50的选择器无法识别 2014-03-02 16:54:19.768 JuhnerickShooterFinal[22576:70b]*由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[CCActionCallBlock Essed]:未识别的选择器发送到实例0x15f84c50'

是否有人能够解释如何将对象从动作传递到被调用函数中

谢谢:)

从中可以看到,这是一个即时操作,不包含
appead
方法,该方法位于
CCActionInterval
类(以及所有子类)中

如果希望在每一帧都发生一些事情,只需将代码添加到节点的
update
方法:

m:

- (void)update:(ccTime)delay {
    GPoint gunPoint = CGPointMake(self.position.x - self.contentSize.width/2, self.position.y);
    CGPoint shootVector = ccpSub(gunPoint, _playerPos);
    float gunAngle = -1 * ccpToAngle(shootVector);
    self.rotation = CC_RADIANS_TO_DEGREES(gunAngle);
}

注意:您需要了解如何在上面的代码中访问
\u playerPos
<代码>玩家可以通过游戏场景中类似单例的模式访问。

删除“永远重复”操作,如果需要在每帧运行代码,则在目标节点中安排更新选择器。您可以使用阻止操作来发布计划。谢谢-看起来我需要重新构造一点程序以实现这一点-我正在将我的旧项目从cocos2d 0.99更新为cocos2d v3:)