2012-09-10 21 views
3

allyMonserCCSprite(繼承)。當我使用日程安排時,allyMonster是中的action()。但是,當我直接撥打action()時,allyMonster不是NULL,這是正常的。Cocos2d-x日程安排錯誤

當我運行此代碼,日誌顯示:

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); 
    ... 
    ... 
} 

回答

0

我猜的原因是,當你運行計劃的功能,它不是指向你想要的功能,但沒有別的東西,因爲

void AMS_Moving::action() 

是錯誤的。默認情況下,所有時間表函數都應該輸入ccTime dt,它應該是

void AMS_Moving::action(ccTime dt)