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

简介:

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


上回说到解决办法是使用CCTargetedAction类.

CCTargetedAction是一个很神奇的类,它本身没有什么动作效果,但是它可以把一个动作和一个特定目标绑定起来,并且返回一个新的Action,我们就可以按需要操作这个新的动作了.

不过该类在Cocos2d-x中和Cocos2d-2.x中才存在,而本猫使用的Cocos2d的版本为最新的3.4.9.而在cocos2d 的v3版本中,CCTargetedAction类是不存在的.

不过好消息是,2.x版本中的对应类是可以在3.x中使用的,我们只需要将原来的代码拷贝到3.x中就可以了.

但是光拷贝是不行的,据说会将一个动作执行2遍,这时我们必须手动再加一条代码:

-(BOOL)isDone{
    return [_action isDone];
}

即在具体类中写一个完成方法的重载即可.

好了,在Cocos2d v3.4.9中的准备工作都已完成,下面是实现代码:

NSMutableArray *actions = [NSMutableArray array];

    for (BattleUnitRoot *unit in sortBattleUnits) {
        BattleUnitRoot *target = _attackTargets[unit.playerData.battleIndex];

        CCTargetedAction *atkAction = [CCTargetedAction actionWithTarget:unit.sprite action:
                                                (CCActionFiniteTime*)[unit getAttackAction]];
        CCTargetedAction *atkedAction = [CCTargetedAction actionWithTarget:target.sprite action:
                                                (CCActionFiniteTime*)[target getAttackedAction]];
        [actions addObject:atkAction];
        [actions addObject:atkedAction];
    }

    CCActionSequence *seq = [CCActionSequence actionWithArray:actions];
    [self runAction:seq];

编译运行,以下是实际游戏到效果动画:

这里写图片描述

相关文章
|
算法 调度
详解操作系统四大常用的作业调度算法(FCFS丨SJF丨HRRN丨RR)
详解操作系统四大常用的作业调度算法(FCFS丨SJF丨HRRN丨RR)
6353 0
|
XML 设计模式 SQL
spring6-AOP面向切面编程
aop是面向切面编程,本质上是一种代理模式,而代理模式又分为静态代理和动态代理。 静态代理以Aspect J为代表,指的是预编译代理,也即编译时增强,在编译时将代理逻辑织入目标类编译得到的Java字节码文件中,当运行时产生的对象就是增强过后的对象了 动态代理以spring AOP为代表,spring AOP 可以使用JDK动态代理或者CGLIB动态代理实现。
160 1
spring6-AOP面向切面编程
|
11月前
|
缓存 监控 API
探索微服务架构中的API网关模式
【10月更文挑战第5天】随着微服务架构的兴起,企业纷纷采用这一模式构建复杂应用。在这种架构下,应用被拆分成若干小型、独立的服务,每个服务围绕特定业务功能构建并通过HTTP协议协作。随着服务数量增加,统一管理这些服务间的交互变得至关重要。API网关作为微服务架构的关键组件,承担起路由请求、聚合数据、处理认证与授权等功能。本文通过一个在线零售平台的具体案例,探讨API网关的优势及其实现细节,展示其在简化客户端集成、提升安全性和性能方面的关键作用。
164 2
|
8月前
|
人工智能 自然语言处理 Cloud Native
智保未来:国泰产险的 AI 网关革新之旅
国泰产险在数智化转型中,全面拥抱大模型技术,通过阿里云云原生API网关简化接入复杂性,提升数据安全性和成本管控能力。公司在外呼、客服、内容生成等业务场景深度应用大模型,解决了多模型统一接入、认证鉴权、内容安全、成本管控和审计风控五大挑战,成为保险行业数智化转型的典范。
255 15
|
JavaScript 前端开发 Go
深入理解Vue响应式系统:数据绑定探索
深入理解Vue响应式系统:数据绑定探索
366 0
|
网络协议 网络安全 网络虚拟化
|
NoSQL Linux 编译器
内核实验(一):使用QEMU+GDB断点调试Linux内核代码
如何配置环境并使用QEMU虚拟机结合GDB进行Linux内核代码的断点调试,包括安装QEMU、交叉编译工具链,编译内核以及通过GDB远程连接进行调试的详细步骤。
945 0
内核实验(一):使用QEMU+GDB断点调试Linux内核代码
|
前端开发 Java 数据库连接
一天十道Java面试题----第五天(spring的事务传播机制------>mybatis的优缺点)
这篇文章总结了Java面试中的十个问题,包括Spring事务传播机制、Spring事务失效条件、Bean自动装配方式、Spring、Spring MVC和Spring Boot的区别、Spring MVC的工作流程和主要组件、Spring Boot的自动配置原理和Starter概念、嵌入式服务器的使用原因,以及MyBatis的优缺点。
|
算法 前端开发 程序员
「LeetCode」234-回文链表⚡️
「LeetCode」234-回文链表⚡️
134 0
「LeetCode」234-回文链表⚡️
|
弹性计算 Linux 对象存储
如何导入本地镜像到阿里云ECS服务器
镜像导入的使用场景在操作之前,我们来介绍一下镜像导入的使用场景。一种情况是,我们需要把线下环境整体搬到云上,这种情况可能有以下特征。1.线下预部署好的服务器2.需要在线下进行测试和调试的服务3.应用需要在线下激活且允许移动的服务4.线下老旧的物理服务器需要上云5.另一种情况是,阿里云当前没有可用的操作系统类型供选择。
如何导入本地镜像到阿里云ECS服务器