在我的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