Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >金币落袋效果

金币落袋效果

作者头像
异名
发布于 2020-06-09 07:29:36
发布于 2020-06-09 07:29:36
1.3K00
代码可运行
举报
文章被收录于专栏:异名异名
运行总次数:0
代码可运行

金币从初始点散开然后逐个飞落到指定的位置,这是游戏里面很常用的一个动画,效果如下

实现思路

要实现这个效果,我们已知三个条件,分别是起点位置,终点位置,金币个数。

生成金币位置

金币散开的位置看起来很随机,但是经过我们的拆解,其实它的第一步是先生成一个标准的圆。假设我们现在是8个金币,我们知道起点的坐标,如何求这8个金币的散开位置呢,这其实是一个数学问题。 8个金币平分一个圆,每个金币夹角是360度 / 8 = 45度,假设圆的半径r是确定的,我们又知道圆心的坐标,结合三角函数我们就能够很轻易算出每个金币的位置。

当我们拥有每一个金币的标准位置之后,再给它们每个的位置叠加一个随机偏移,这样子他们的位置看起来就是围绕着起点做随机分布

fly_gold_circle_1

以上代码如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
/**
 * 以某点为圆心,生成圆周上等分点的坐标
 *
 * @param {number} r 半径
 * @param {cc.Vec2} pos 圆心坐标
 * @param {number} count 等分点数量
 * @param {number} [randomScope=80] 等分点的随机波动范围
 * @returns {cc.Vec2[]} 返回等分点坐标
 */
getCirclePoints(r: number, pos: cc.Vec2, count: number, randomScope: number = 60): cc.Vec2[] {
  let points = [];
  let radians = (Math.PI / 180) * Math.round(360 / count);
  for (let i = 0; i < count; i++) {
    let x = pos.x + r * Math.sin(radians * i);
    let y = pos.y + r * Math.cos(radians * i);
    points.unshift(cc.v3(x + Math.random() * randomScope, y + Math.random() * randomScope, 0));
  }
  return points;
}

金币落袋

拆分效果可以看到,金币落袋的过程中还有先后的顺序,我们在实现的时候先计算一下每个金币到袋子的距离,然后做个排序,让距离袋子近的金币先执行进袋的动画,远的后执行。

fly_gold_circle_2

代码的实现如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
goldNodeList.sort(node => node.dis);

goldNodeList.forEach((node, idx) => {
    node.gold.runAction(cc.sequence(
        cc.moveTo(0.3, node.startPoint),
        cc.delayTime(idx * 0.03),
        cc.moveTo(0.6, node.endPoint),
        cc.callFunc(() => {
            this.goldPool.put(node.gold);
        })
    ))
});

效果预览

源码获取请点击查看原文,长按二维码查看效果?

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 异名 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Bootstrap Table写一个Demo
基于 Bootstrap 的 jQuery 表格插件,通过简单的设置,就可以拥有强大的单选、多选、排序、分页,以及编辑、导出、过滤(扩展)等等的功能。
王小婷
2019/05/17
1.6K0
Bootstrap速学教程之简要介绍
  Bootstrap是Twitter推出的一个用于前端开发的开源工具包,由Twitter的设计师Mark Otto和Jacob Thornton合作开发,是一个CSS/HTML框架,不用请UI设计师也能开发出中规中矩的网页,并且最重要的是支持html5、css3移动端自适应,现在很多所谓的三合一五合一网站是基于bootstrap搭建的。   我们来看一个简单的例子 <!DOCTYPE html><!-- html5格式 --> <html lang="zh-CN"> <head> <meta
ytkah
2018/03/06
1.2K0
Bootstrap使用及环境搭建详解
官网:https://getbootstrap.com/ 中文网:http://www.bootcss.com/
全栈程序员站长
2022/11/17
2.9K0
Bootstrap使用及环境搭建详解
使用IntelliJ IDEA开发SpringMVC网站(五)博客文章管理 顶
访问GitHub下载最新源码:https://github.com/gaussic/SpringMVCDemo
Gaussic
2018/08/17
1.3K0
使用IntelliJ IDEA开发SpringMVC网站(五)博客文章管理
                                                    顶
使用IntelliJ IDEA开发SpringMVC网站(二)框架配置 顶
注:此文承接上一文:使用IntelliJ IDEA开发SpringMVC网站(一)开发环境
Gaussic
2018/08/17
7870
使用IntelliJ IDEA开发SpringMVC网站(二)框架配置
                                                    顶
Python测试开发-创建模态框及保存数据
模态框是指的在覆盖在父窗体上的子窗体。可用来做交互,我们经常会看到模态框用来登录、确定等等,到底是怎么实现这种弹出效果,bootstrap已经为我们提供了相应的组件。
测试开发社区
2019/09/20
1.3K0
Python测试开发-创建模态框及保存数据
BootCDN已更换域名,网站引用资源需及时更新替换新地址 - 星泽V社
BootCDN 对外提供服务的域名已经于两年前(即 2020 年)变更为新域名 cdn.bootcdn.net, 老域名 cdn.bootcss.com将于2020年过期。cdn.bootcss.com 目前访问返回404
星泽V社
2022/05/30
2.7K0
BootCDN已更换域名,网站引用资源需及时更新替换新地址 - 星泽V社
使用IntelliJ IDEA开发SpringMVC网站(五)博客文章管理
        博客的管理与用户的管理有许多的相似之处,但是另外多了外键的操作,下面做简单的说明。
bear_fish
2018/09/19
7920
使用IntelliJ IDEA开发SpringMVC网站(五)博客文章管理
基于bootstrap的web登陆实例
前情提要 之前已经搭好的springMVC+myBatis项目骨架,详情请看–>传送门。
bear_fish
2018/09/19
3.3K0
基于bootstrap的web登陆实例
各种常用的CDN加速服务
使用CDN链接可以大大减小自己项目包的大小,把大部分的公共代码资源已经放在了云服务器上,只需要链接请求就可以。比如要引用jquery,可以自己下载jQuery.js文件导入,也可以直接导入一个链接,请求jQuery源代码。
不愿意做鱼的小鲸鱼
2022/09/24
7.6K0
jQuery :contains 选择器
经常与其他元素/选择器一起使用,来选择指定的组中包含指定文本的元素(如下面的例子)。
王小婷
2021/07/08
6920
Bootstrap里的文件分别代表什么意思及其引用方法
*bootstrap.css 是完整的bootstrap样式表,未经压缩过的,可供开发的时候进行调试用 *bootstrap.min.css 是经过压缩后的bootstrap样式表,内容和bootstrap.css完全一样,但是把中间不必要的空格之类的东西都删掉了,所以文件大小会比bootstrap.css小,可以在部署网站的时候引用,如果引用了这个文件,就没必要引用bootstrap.css了,下面的文件同样。
德顺
2019/11/13
1.8K0
使用IntelliJ IDEA开发SpringMVC网站(四)用户管理 顶
访问GitHub下载最新源码:https://github.com/gaussic/SpringMVCDemo
Gaussic
2018/08/17
1.4K0
使用IntelliJ IDEA开发SpringMVC网站(四)用户管理
                                                    顶
es6扩展运算符、concat方法合并多个数组
1:ES6扩展运算符、合并多个数组 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>test</title> <link rel="stylesheet" href="https://cdn.bootcss.com/twitter-bootstrap/4.3.1/css/bootstrap.min.css"> <script src="https://cdn.bo
王小婷
2022/12/10
6280
es6扩展运算符、concat方法合并多个数组
复选框checkbox实现自定义样式
在实际开发中,时长会遇到这样的问题,checkbox默认的样式有点难看,很多的时候,会更具ui设计图,来改变相应的checkbox的样式,这个时候就可以自定义一个样式了。
王小婷
2020/05/18
1.6K0
复选框checkbox实现自定义样式
bootstrap table表格的点击详情按钮操作
bootstrap table表格的点击详情按钮的时候 只改变当前按钮的状态 其余不变
王小婷
2022/07/05
3.5K2
bootstrap table表格的点击详情按钮操作
把https地址作为变量拼接在link/script 内部
下面是之前写的一个交互的例子,直接拿过来用一用啦,最主要的在于将把https地址作为变量拼接在link/script 内部,其余的都是次要的。
王小婷
2020/12/29
8810
jQuery带参数跳转,新页面获取url的参数id
a.html <!DOCTYPE HTML> <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="stylesheet" href="https://cdn.bootcss.com/twitter-bootstrap/4.3.1/css/bootstrap.min.css
王小婷
2021/06/24
3.4K0
分享一个支持https的CDN及启用SSL后续问题汇总
之前张戈博客全站启用了 https,并分享了相关经验心得。用了一段时间,问题还是不少,所以继续整上一篇文章,汇总一下网站启用 https 之后出现的问题以及解决办法。 在分享这些问题之前,我先分享一个国内支持 https 的 CDN,让个人博客也能无忧启用 https,而不暴露真实 IP。 我现在用的是腾讯云内测的支持 https 的 CDN,其他人也就暂时用不了。本以为国内基本就没有其他支持 https 的 CDN 了,结果晓庄等几个博主留言分享了一个支持 https 的 CDN——VeryCloud。
张戈
2018/03/21
9.6K0
分享一个支持https的CDN及启用SSL后续问题汇总
bootstrap简洁居中毛玻璃登录源码
分享一个bootstrap简洁居中毛玻璃登录源码,感觉很好看,希望大家喜欢。随机图调用杨小杰api接口 做了两个,一个是原版的,一个是emlog登录的,还有一个typecho版本的 原版源码: <html> <head> <meta itemprop="name" content="杨小杰博客后台"/> <meta itemprop="image" content="http://www.youngxj.cn/logopic.png" /> <meta name="descri
Youngxj
2018/06/06
2.4K0
推荐阅读
相关推荐
Bootstrap Table写一个Demo
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验