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];
编译运行,以下是实际游戏到效果动画:
Cocos2D中Action的进阶使用技巧(二)的更多相关文章
- Cocos2D中Action的进阶使用技巧(一)
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 大家对Cocos2d中动作的使用大概都很清楚了,其实本身act ...
- Cocos2d中update与fixedUpdate的区别(二)
关于update:方法的目的 update:方法的目的在于给你一个更新你的游戏(你游戏中的所有对象,标签等待)的机会,在它们被渲染到屏幕之前. 换句话说,如果你想要一些游戏对象显示在屏幕的特定位置,你 ...
- js基础进阶--编码实用技巧(二)
我的个人博客:http://www.xiaolongwu.cn 接上篇文章 js编码的实用技巧(一) 5.合理利用||运算符 使用||可以作为参数之外的默认值,当第一个参数返回值为false时,那么第 ...
- Cocos2D iOS之旅:如何写一个敲地鼠游戏(二):Cocos2D中的高清支持
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...
- 【转】C#中WinForm程序退出方法技巧总结
C#中WinForm程序退出方法技巧总结 一.关闭窗体 在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.Ex ...
- C#中WinForm程序退出方法技巧总结
C#中WinForm程序退出方法技巧总结 一.关闭窗体 在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.Ex ...
- Java进阶(三十二) HttpClient使用详解
Java进阶(三十二) HttpClient使用详解 Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们 ...
- 【C# 开发技巧】 C#中WinForm程序退出方法技巧总结
C#中WinForm程序退出方法技巧总结 一.关闭窗体 在c#中退出WinForm程序包括有很多方法,如:this.Close(); Application.Exit();Application.Ex ...
- Cocos2d-X网络编程(2) Cocos2d中的网络通信协议——http协议
HTTP协议也叫超文本传输协议.是互联网广泛使用的通信协议,常用于B/S架构中. HTTP连接使用的是短连接形式,也就是"请求-响应"的方式,不仅在请求时需要先建立连接,而且需要客 ...
随机推荐
- Linux 软件安装到 /usr,/usr/local/ 还是 /opt 目录区别
Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的 /usr:系统级的目录,可以理解为C:/Windows/, /usr/lib理解为C:/Windows/System32./ ...
- ref string
string pics=""; pSub.GetSubjectContent(pddm,ref pics); public string GetSubjectContent(st ...
- js ==与===区别
//全等===和相等==的区别 console.log(100 === '100');//false console.log(100 == '100');//true 1.对于string,numbe ...
- idea+jsp+jstl c标签页面异常
先在Schema and DTDs配置C.tld文件 最后提示是少包 网上很多方法都说少jstl.jar 折腾了很久 其实还少standard.jar 以前的解决方法(看下面) 把这两个包分别加到项目 ...
- 0. 迷之 -> 和 .
0. 迷之 -> 和 . 箭头(->):左边必须为指针: 点号(.):左边必须为实体. e.g.1 class class A{ public: play(); }; int main() ...
- joomla网站内插入doc文档
最近我的网站又出了问题,之前用joomla做的网站,由于要放doc文档,后来想尽办法终于用iframe的办法,先把文档传到scribd网,然后把文档嵌到网站里去,但是狗血的,去年五月份的时候我们伟大的 ...
- VMware在宿主上没有VMnet0、VMnet8,解决方法
一开始,坐着上机实验,一直搞不通为什么虚拟机上的客户机可以ping通自己的ip也可以ping通自己本身的ip,但是主机ping不通虚拟机的客户机,也ping不通虚拟机的网关. 尝试了各种问题,也追出了 ...
- Mac下安装PEAR
The following instructions install PEAR and PECL on Mac OS X under/usr/local/. PECL is bundled with ...
- Win7 环境下虚拟机内 Samba 服务器的安装、配置以及与主机的通信实现
考虑到window和linux虚拟机之间互传文件较为麻烦,遂打算在虚拟机中安装Samba服务器,以此实现共享文件给window使用.然而安装配置过程曲折,遂作记录如下: 一.samba服务器的安装 正 ...
- Bootstrap3 排版-标题
HTML 中的所有标题标签,<h1> 到 <h6> 均可使用.另外,还提供了 .h1 到 .h6 类,为的是给内联(inline)属性的文本赋予标题的样式. h1. Boots ...