预览效果

具体内容

■ 这一期,主要讲解主页中间人物效果的实现。也就是,在下方列表选择不同人物,上方显示不同的人物,播放不同的效果,即下图的效果实现,此部分也是采用预制 Prefab 进行实现。

英雄Hero预制组成

■ 英雄预制 Hero 主要四部分组成:旋转的光、大小变化的光球、英雄本身、英雄的武器。这四部分,都会根据英雄的不同等级,动态的更换对应的纹理即可,游戏过程中,使用的动画,无须变化。

■ 使用到的几个精灵,都需要根据不同等级,进行纹理的更换,于是就封装了一个通用的方法,传入精灵节点和纹理所在路径,使用 cc.loader 动态加载纹理,加载成功以后,直接显示出来。

动画的显示

■ 这一部分,有 3 个节点需要使用到动画:旋转的光、放大缩小的光球、旋转的刀。每一个节点都挂载一个启动播放的动画,动画的具体实现,直接在 Cocos Creator 编辑器内编辑好保存就行。

■ 光旋转效果,只需要做旋转动画即可。在动画中,加入旋转角度,就可以简单的实现。显示的效果好不好,可以预览观察,直到调整到合适的旋转节奏就行。

■ 武器旋转效果,和旋转的光,是用的同一种节奏进行的,所以本实例中,旋转的武器和旋转的光,都是使用上图效果中的同一个动画。播放时,设置成循环播放就可以实现不断的播放效果了。

■ 放大缩小光球,也和上面动画效果差不多,只是动画选择的是 scale 属性,不断的进行放大缩小就行,也是一样,加入循环播放的控制。

■ 以上所有动画,在游戏中是同时进行播放的,最后看起来的效果就如同最开始的预览一样,球和武器一起旋转,同时光球不断的放大缩小。

武器添加

■ 这里将的武器添加,是指初始化时,根据不同等级的英雄,默认添加添加到英雄周围旋转的飞刀,都是一次性添加的,没有动态添加几把的效果,这个后期会讲到。

■ 英雄上所有的武器,共用一个根节点,根节点作为容器,管理所有武器。这么做的好处是,多个武器需要做动画时,只需要按照规则把武器添加好,对根节点做动画即可。添加的方式是,以中心点为圆点,根据武器数,计算出每把武器之间的角度,然后算出每把武器的 x 坐标值和 y 坐标值。

■ 假设武器锚点离中心点的偏移量是 Offset,角度是 angle,那么就容易算出武器的横坐标 x = Offset * sin(angle),同理,可算出武器的纵坐标 y = Offset * cos(angle)。按照这个原理,就可以实现武器按照角度分布,添加到武器根节点上。计算过程中,需要注意角度和弧度的转换,不同版本的 Cocos Creator 设置角度的 API 可能有差异,这个看官方文档就行。

选中未选中处理

■ 这里,有添加一个额外处理,正常情况下,人物使用的纹理和选中使用的纹理,是有差异的,这个功能,主要是用在后期的游戏中的,目前只需要关注有这个功能即可。这个实现,也很简单,就是监听触摸事件,触摸开始更换一个纹理,触摸结束,再还原回来就行。

■ 英雄有两种状态,进攻状态和防御状态,按下时是进攻,松开以后是防御状态。攻击状态下,武器会扩大攻击范围,武器有一定的倾斜度。防御状态下,武器笔直向外,离英雄更近。只需要单独的做每个武器做动画,修改武器的位置和偏移角度,计算方法类似上面的添加武器。

Cocos Creator | 飞刀大乱斗开发教程系列(二)的更多相关文章

  1. Cocos Creator | 飞刀大乱斗开发教程系列(三)

    预览效果 ​ 具体内容 ■ 这一期,主要讲解游戏过程中,通过触摸滑动,控制人物的运动方向,以及游戏过程中,人物运动区域的控制.如下图,人物通过滑动控制运动方向,即是往哪个方向滑动,人物就往哪个方向移动 ...

  2. Cocos Creator | 飞刀大乱斗开发教程系列(一)

    预览效果 具体内容 ■ 这一期,主要讲解主页下方列表选项如何实现.也就是游戏开始后,加载所有现有的英雄列表,这一功能的实现,如下图部分. ■ 列表使用 ScrollView 实现,横向滚动,设置好上下 ...

  3. cocos creator策略类手游开发教程

    目录 大小6.83GB,Mp4格式,语言:中文 扫码时备注或说明中留下邮箱 付款后如未回复请至https://shop135452397.taobao.com/ 联系店主

  4. GridView的 PreRender事件与 RowCreated、RowDataBound事件大乱斗

    GridView的 PreRender事件与 RowCreated.RowDataBound事件大乱斗 之前写了几个范例,做了GridView的 PreRender事件与 RowCreated.Row ...

  5. python红蓝英雄大乱斗(面向对象实现)

    红蓝英雄大乱斗 游戏规则 ''' 有红蓝两方英雄(可自定义个数) 随机一方英雄使用随机攻击方式攻击另一方英雄,任意一方英雄全部阵亡则游戏结束 每个英雄有 名字.生命值.普通攻击.Q技能攻击.W技能攻击 ...

  6. iOS 11开发教程(二)编写第一个iOS 11应用

    iOS 11开发教程(二)编写第一个iOS 11应用 编写第一个iOS 11应用 本节将以一个iOS 11应用程序为例,为开发者讲解如何使用Xcode 9.0去创建项目,以及iOS模拟器的一些功能.编 ...

  7. Senparc.Weixin.MP SDK 微信公众平台开发教程(二十二):如何安装 Nuget(dll) 后使用项目源代码调试

    最近碰到开发者问:我使用 nuget 安装了 Senparc.Weixin SDK,但是有一些已经封装好的过程想要调试,我又不想直接附加源代码项目,这样就没有办法同步更新了,我应该怎么办? 这其实是一 ...

  8. Senparc.Weixin.MP SDK 微信公众平台开发教程(二):成为开发者

    Senparc.Weixin.MP SDK 微信公众平台开发教程(二):成为开发者 这一篇主要讲作为一名使用公众平台接口的开发者,你需要知道的一些东西.其中也涉及到一些微信官方的规定或比较掩蔽的注意点 ...

  9. Senparc.Weixin.MP SDK 微信公众平台开发教程(二十):使用菜单消息功能

    在<Senparc.Weixin.MP SDK 微信公众平台开发教程(十一):高级接口说明>教程中,我们介绍了如何使用“客服接口”,即在服务器后台,在任意时间向微信发送文本.图文.图片等不 ...

随机推荐

  1. 转载:ubuntu 下的dpkg 的用法

    dpkg是一个Debian的一个命令行工具,它可以用来安装.删除.构建和管理Debian的软件包. 下面是它的一些命令解释: 1)安装软件 命令行:dpkg -i <.deb file name ...

  2. Android中后台线程如何与UI线程交互

    我想关于这个话题已经有很多前辈讨论过了.今天算是一次学习总结吧. 在android的设计思想中,为了确保用户顺滑的操作体验.一些耗时的任务不能够在UI线程中运行,像访问网络就属于这类任务.因此我们必须 ...

  3. Python 基础09 面向对象的进一步拓展

    调用类的其他信息 上一讲中提到,在定义方法时,必须有self这一个参数,这个参数表示某个对象,对象有有类的所有性质, 那么我么可以通过self 调用类属性. class Human(object): ...

  4. jieba分词流程及部分源码解读(一)

    首先我们来看一下jieba分词的流程图: 结巴中文分词简介 1)支持三种分词模式: 精确模式:将句子最精确的分开,适合文本分析 全模式:句子中所有可以成词的词语都扫描出来,速度快,不能解决歧义 搜索引 ...

  5. 我来教你用AWS IoT.Part1--配置和接入

    AWS的IOT服务在中国区才开放.由于工作原因需要简单试用评估.写一下自己简单试用的流程,供其他人参考. 直接贴流程 1.先注册一个类型(这里“类型”相对于编程,可以理解为父类,里面可以添加一些可继承 ...

  6. Native memory allocation (mmap) failed to map xxx bytes for committing reserved memory

    遇到问题 在服务器上运行 nexus 出现Native memory allocation (mmap) failed to map 838860800 bytes for committing re ...

  7. linux 如何编译安装软件

  8. 2018-4-29-C#-金额转中文大写

    title author date CreateTime categories C# 金额转中文大写 lindexi 2018-04-29 09:50:38 +0800 2018-04-02 21:4 ...

  9. HashMap和HashSet的使用,区别。集合,Array、Collection(List/Set/Queue)、Map

    HashMap和HashSet的区别 HashMap和HashSet的区别是Java面试中最常被问到的问题.如果没有涉及到Collection框架以及多线程的面试,可以说是不完整.而Collectio ...

  10. Python--day32--struct模块定制报头理论(什么是网络协议?网络协议的本质是什么?)