Cocos2D中Action的进阶使用技巧(一)

简介:

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)


大家对Cocos2d中动作的使用大概都很清楚了,其实本身action的概念也不复杂.

但是在某些情况下,一般的动作不能满足我们需求的时候,我们就必须使用更高级的Action方法来解决问题.

比如,串行化(不是序列化哦,这是两个完全不同的概念)不同Action的执行…有些童鞋可能会说很简单,直接用CCActionSequence不就结了,但是等等我还没说完…这些串行执行的动作的目标是不同的.

再说的具体点,游戏中有2个队列,分别是我方队列和敌方队列,每个队列有若干unit,每个unit可以做攻击动作,同时每个unit也可以做被攻击的动作.现在要求的逻辑是:

  1. 取出一个unit发起攻击动作
  2. 等到攻击动作结束后,被攻击的unit再完成被攻击动作
  3. 依次串行化以上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

相关文章
|
机器学习/深度学习 自然语言处理 自动驾驶
深度学习的应用实例:重塑各个领域的未来
深度学习的应用实例:重塑各个领域的未来
600 0
|
缓存 Kubernetes API
K8S Pod 停止不掉一直处于Terminating状态问题解决
主要是从pod 停止不掉一直处于Terminating到 发现k8s node处于NotReady状态,在发现为什么处于NotReady , 再到发现node 状态因为PLEG is not healthy: pleg was last seen active 等问题
4672 0
K8S Pod 停止不掉一直处于Terminating状态问题解决
|
缓存 前端开发 Java
SpringBoot&SpringMVC统一异常处理之RestControllerAdvice
SpringBoot&SpringMVC统一异常处理之RestControllerAdvice
264 0
|
4月前
|
存储 监控 算法
Java程序员必学:JVM架构完全解读
Java 虚拟机(JVM)是 Java 编程的核心,深入理解其架构对开发者意义重大。本文详细解读 JVM 架构,涵盖类加载器子系统、运行时数据区等核心组件,剖析类加载机制,包括加载阶段、双亲委派模型等内容。阐述内存管理原理,介绍垃圾回收算法与常见回收器,并结合案例讲解调优策略。还分享 JVM 性能瓶颈识别与调优方法,分析 Java 语言特性对性能的影响,给出数据结构选择、I/O 操作及并发同步处理的优化技巧,同时探讨 JVM 安全模型与错误处理机制,助力开发者提升编程能力与程序性能。
Java程序员必学:JVM架构完全解读
|
7月前
|
人工智能 Java 程序员
一文彻底搞定C语言的表达式和语句
本文介绍了C语言中的表达式和语句,涵盖算术、关系等表达式及各类语句的用法,帮助初学者理解核心概念。本文介绍C语言表达式(算术、关系等)和语句(表达式、复合、控制、函数、空语句),助你掌握核心概念。
362 0
一文彻底搞定C语言的表达式和语句
|
机器学习/深度学习 人工智能 物联网
探索软件测试的前沿技术与未来趋势
在数字化时代的浪潮中,软件测试作为保障软件质量的重要环节,正经历着前所未有的变革。本文将深入探讨当前软件测试领域的最新技术进展,包括自动化测试、人工智能在测试中的应用、以及云测试平台的发展等。同时,文章也将对软件测试的未来发展趋势进行预测,为读者揭示一个更加智能化、高效化的软件测试新时代。
|
机器人 API 开发工具
阿里云百炼应用实践系列-基于LlamaIndex的文档问答助手
本文以阿里云百炼官方文档问答助手为例,介绍如何基于阿里云百炼平台打造基于LlamaIndex的RAG文档问答产品。我们基于阿里云百炼平台的底座能力,以官方帮助文档为指定知识库,搭建了问答服务,支持钉钉、Web访问。介绍了相关技术方案和主要代码,供开发者参考。
1416 22
|
安全 API 语音技术
阿里云百炼大模型服务平台是什么
阿里云百炼大模型服务平台是一个为企业提供一站式专属大模型生产与应用的平台,支持多样化模型和自定义编排。平台提供即插即用的智能工具箱,包括API接口、模型微调及部署功能,同时具备流程编排以适应复杂业务场景。此外,平台内置多种工具和插件,支持Python等,允许企业集成自定义API。平台优势在于快速构建业务应用、多行业大模型,以及保障模型效果的三大核心竞争力。它还提供丰富的模型服务,如通义千问模型用于文字创作、翻译等,通义万相模型用于图像生成,以及语音合成和识别模型等。企业可通过标准API和SDK进行集成,确保高效安全。
|
安全 网络安全
IPXProxy代理提升网络安全:私人住宅IP的高匿名性
​在现代数字环境中,保护在线隐私和安全已成为关键问题。每次我们在网上浏览时,都会留下数据痕迹,这些痕迹可能被用来跟踪我们的活动,甚至有些网站会禁止访问我们的IP地址。为了保护上网安全并确保网络活动顺利进行,许多个人和企业转向使用私人住宅IP。那么,什么是私人住宅IP,它的高匿名性体现在哪些方面?
261 0
|
NoSQL 关系型数据库 MongoDB
Flink cdc报错问题之升级2.3.0报错如何解决
Flink CDC报错指的是使用Apache Flink的Change Data Capture(CDC)组件时遇到的错误和异常;本合集将汇总Flink CDC常见的报错情况,并提供相应的诊断和解决方法,帮助用户快速恢复数据处理任务的正常运行。