在我的C++/Cocos2d-x代碼中,我有一些自定義的Cocos2d操作;在我的情況下,類繼承CCActionInterval
或CCActionInstant
。我注意到Cocos2d-x版本1.0.1和版本2.0之間在如何調用這些類的更新方法上的區別。在升級之前,更新方法總是在time = 1.0時至少調用一次。從我現在看到的2.0版本中,即時動作的更新方法僅在time = 0時被調用一次。它總是如此嗎?我可以假設,在版本2.0中,在繼承CCActionInstant
的類中,更新方法只會被調用一次,時間值將始終爲零?Cocos2dx 2.0中的自定義操作更新方法
1
A
回答
0
我會先說這個,我不認爲你應該擔心這樣的實現細節。當你劃分CCActionInstant
時,你總是可以假設你的子類是一個即時動作。如果將來實現的細節發生了變化,他們可能會讓這個類變得更好,並且你的子類應該表現得更好。這就是說,你可能有理由擔心這個實現細節,所以,這裏是一個擴展的答案。
只要你不更新你的庫,你可以認爲它總是在時間0被調用。 Cocos2d-x非常動態,並且根據cocos2d-iphone版本而改變,所以更改必然會發生。
在cocos2d v2.0中,所有操作都由CCActionManager
類管理。因此,通過檢查類,你可以看到:
// main loop
void CCActionManager::update(float dt)
{
...
if (m_pCurrentTarget->currentAction->isDone())
{
m_pCurrentTarget->currentAction->stop();
CCAction *pAction = m_pCurrentTarget->currentAction;
// Make currentAction nil to prevent removeAction from salvaging it.
m_pCurrentTarget->currentAction = NULL;
removeAction(pAction);
}
}
正如你所看到的,removeAction
被稱爲當isDone()
是真實的。毫不奇怪,CCActionInstant
中的isDone()
方法總是返回true,因此在刪除一次後總會被刪除:)。
相關問題
- 1. Ruby on Rails自定義更新操作
- 2. 從.Net 2.0的Windows Installer自定義操作到.Net 4.0自定義操作 - BadImageFormatException
- 3. MSP中的新自定義操作
- 4. RIA自定義更新方法
- 5. WiX中的自定義操作方法調用
- 6. 自定義URL方案的自定義操作Mac Objective-c
- 7. 如何在Play中創建自定義操作! 2.0框架?
- 8. 在Selenium中定義自定義操作
- 9. 翻新自定義參數操作符
- 10. 定義默認的Portlet操作方法
- 11. 主要更新的InstallShield自定義操作
- 12. Ruby 2.0中未定義的方法「each」
- 13. 在自定義屬性中查找mvc3操作方法參數
- 14. Magento>從佈局中刪除自定義操作方法
- 15. 是否可以從Ruby on Rails中的更新操作/方法以外的操作/方法進行更新?
- 16. 以編程方式更改自定義操作欄的標題
- 17. 無法測試GMail自定義操作
- 18. 自定義操作無法執行
- 19. 無法在遞延自定義操作
- 20. 控制器上的自定義身份驗證操作方法
- 21. link_to自定義操作但錯誤的方法?
- 22. rails_admin自定義操作的控制器方法在哪裏去?
- 23. 部署項目 - 自定義操作更新
- 24. 軌道4:自定義操作只更新PARAM與AJAX
- 25. 更新記錄與自定義操作和link_to
- 26. 問題定義equals()方法操作
- 27. Django自定義管理操作自動更新/刷新管理頁面
- 28. 如何使用WIX 2.0創建自定義操作項目
- 29. .net 2.0安裝項目自定義操作和InstallState文件
- 30. 在Rails中更新記錄時未定義的方法更新
謝謝。爲了澄清,每個動作總是隻有一次即時動作的更新方法(而不是間隔動作)? – FireAphis
@FireAphis對不起,我以爲你確認了這一點。是的,打了一次電話。我會更新我的答案。 – Mazyod