3

allyMonser是一个CCSprite(继承)。当我使用时间表时allyMonsterNULLaction(). 但是,当我action()直接调用时,allyMonsteris Not NULL,这是正常的。

当我运行此代码时,日志显示:

1, 0x23ds566
2, 0xfffffff

我想知道原因1, 0x23ds566-> 2, 0xfffffff。为什么会改变?

void AMS_Moving::runAction()
{
    allyMonster->unscheduleAllSelectors();
    allyMonster->stopAllActions();
    allyMonster->schedule( schedule_selector( AMS_Moving::action ) );

    CCLog("1. %x", allyMonster);
}

void AMS_Moving::action()
{
    CCLog("2. %x", allyMonster);
    ...
    ...
}
4

1 回答 1

0

我猜原因是,当你运行预定的函数时,它不是指向你想要的函数,而是指向别的东西,因为

void AMS_Moving::action() 

是错的。默认情况下,所有调度函数都应该接受一个输入 ccTime dt,它应该是

void AMS_Moving::action(ccTime dt)
于 2012-09-10T23:06:36.550 回答