Cocos2D中Action的进阶使用技巧(一)
技巧 进阶 cocos2d Action 使用
2023-09-14 08:56:50 时间
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)
但是在某些情况下,一般的动作不能满足我们需求的时候,我们就必须使用更高级的Action方法来解决问题.
比如,串行化(不是序列化哦,这是两个完全不同的概念)不同Action的执行…有些童鞋可能会说很简单,直接用CCActionSequence不就结了,但是等等我还没说完…这些串行执行的动作的目标是不同的.
再说的具体点,游戏中有2个队列,分别是我方队列和敌方队列,每个队列有若干unit,每个unit可以做攻击动作,同时每个unit也可以做被攻击的动作.现在要求的逻辑是:
等到攻击动作结束后,被攻击的unit再完成被攻击动作 依次串行化以上2个步骤,直到所有unit都处理完毕
看似简单的要求,如果使用正常的Action来完成就会发现无从下手.其实一般的解决办法是有的,但是有限制,就是假定每个被攻击动作的时间都一致.这样可以通过特定延时的方法来解决,伪代码如下:
Array *actions for each unit in list attacker = unit attackTarget = unit.target CallBack *cb = ^{[attackTarget runAttackedAction]} Delay *delay = [delay 1]; [actions addObject:attacker.attackAction]; [actions addObject:cb]; [actions addObject:delay]; end for
基本上类似如上的代码,注意其中增加了一个延时1秒钟,因为我知道AttackedAction大概要运行1秒钟.
如果每次AttackedAction运行的时间不确定的话,这招就没有用了.
我们这时必须使用另外一种Action:CCTargetedAction
相关文章
- mybatis操作mysql的奇淫技巧总结(代码库)
- Mac 苹果OS X小技巧:如何更改文件的默认打开方式
- web前端9个开发常见小技巧
- 一个小技巧,快速找出一段ABAP代码里访问到的所有透明表
- CSS开发过程中的20个快速提升技巧
- C语言使用技巧(三):位域在结构体中的使用
- Python使用技巧(四):类中的递归和类里的类里的...的递归
- 【SQL开发实战技巧】系列(二十二):数仓报表场景☞ 从分析函数效率一定快吗聊一聊结果集分页和隔行抽样实现方式
- 【SQL开发实战技巧】系列(二十一):数据仓库中时间类型操作(进阶)识别重叠的日期范围,按指定10分钟时间间隔汇总数据
- 【SQL开发实战技巧】系列(十九):数据仓库中时间类型操作(进阶)如何一个SQL打印当月或一年的日历?如何确定某月内第一个和最后—个周内某天的日期?
- 使用技巧 | 10个 Python 字典用法详解
- python使用技巧(二十一):class()与class(object)的区别以及object的使用
- Nmap使用技巧总结
- 【SQL Server】数据库开发指南(三)面向数据分析的 T-SQL 编程技巧与实践