# rain-game
基于vue、canvas、requestAnimationFrame的高性能红包雨效果
## 效果
![](https://user-images.githubusercontent.com/58357112/220060196-fbdb615b-c3be-463b-9b77-3e742d646a9b.gif)
## 如何使用
``` bash
npm i rain-game -S
```
``` js
import RainGame from 'rain-game'
this.rainGame = new RainGame({
el: '#canvas',
preload: true,
rains: [
{
image: require('./img/normal.webp'),
width: 140,
height: 120,
clicked: {
image: require('./img/clicked.webp'),
width: 178,
height: 100,
},
},
],
})
```
## 参数
| 参数 | 说明 | 类型 | 默认值 |
| ------------------ | ------------------------------------------------------------ | ------------------------- | ------ |
| el | 挂载的canvas元素 | string\|HTMLCanvasElement | - |
| proload | 是否预加载rains中的image图片 | boolean | true |
| interval | 生成红包的间隔时间 | number | 500 |
| speed | 红包每帧移动的距离(px) | number | 2 |
| horizontalMovement | 是否支持横向移动 | boolean | false |
| boundary | 点击红包边界距离,为number时表示四边的距离,为array时表示上右下左的距离 | number\|array | - |
| rains | 红包数组信息 | array | - |
#### rains参数说明
| 参数 | 说明 | 类型 | 默认值 |
| ------- | ------------------------------------ | ------ | ------ |
| image | 红包图片地址 | string | - |
| width | 宽度 | number | - |
| height | 高度 | number | - |
| ratio | 出现的权重 | number | 1 |
| speed | 红包每帧移动的距离(px),优先级更高 | number | - |
| clicked | 击中效果 | object | - |
#### clicked参数说明
| 参数 | 说明 | 类型 | 默认值 |
| --------- | ------------------------------------ | ------ | ------ |
| image | 击中红包图片地址 | string | - |
| width | 宽度 | number | - |
| height | 高度 | number | - |
| translate | 相对于红包的x、y轴位移 | array | - |
| speed | 红包每帧移动的距离(px),优先级更高 | number | - |
| duration | 被点击红包停留时长 | number | 200 |
#### ratio说明
以下面例子,图片1生成的概率为1/3,图片2生成的概率为2/3。
```json
[
{
image: require('./img/1.png'),
width: 140,
height: 120,
ratio: 1,
},
{
image: require('./img/2.png'),
width: 140,
height: 120,
ratio: 2,
}
]
```
## 事件
```js
// 红包被击中,被回传红包信息
rainGame.$on('strike', (rain) => {
console.log(rain)
})
```
## 方法
| 方法名 | 说明 | 参数 |
| ------ | ------------------------------------------ | -------- |
| play | 游戏开始 | - |
| pause | 游戏暂停 | - |
| clear | 游戏停止 | - |
| add | 动态添加红包 | rain信息 |
| remove | 若需移除红包,则传入的rain信息需包含id字段 | id |
没有合适的资源?快使用搜索试试~ 我知道了~
基于vue、canvas、requestAnimationFrame的高性能红包雨效果.zip
共25个文件
js:8个
webp:4个
gitignore:2个
1 下载量 45 浏览量
2024-08-28
13:02:13
上传
评论
收藏 6.57MB ZIP 举报
温馨提示
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松copy复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全栈开发),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:项目具体内容可查看/点击本页面下方的*资源详情*,包含完整源码+工程文件+说明(若有)等。【若无VIP,此资源可私信获取】 【本人专注IT领域】:有任何使用问题欢迎随时与我联系,我会及时解答,第一时间为您提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【适合场景】:相关项目设计中,皆可应用在项目开发、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面中 可借鉴此优质项目实现复刻,也可基于此项目来扩展开发出更多功能 #注 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担 2. 部分字体及插图等来自网络,若是侵权请联系删除,本人不对所涉及的版权问题或内容负法律责任。收取的费用仅用于整理和收集资料耗费时间的酬劳 3. 积分资源不提供使用问题指导/解答
资源推荐
资源详情
资源评论
收起资源包目录
基于vue、canvas、requestAnimationFrame的高性能红包雨效果.zip (25个子文件)
DScanvaas89
playground
babel.config.js 73B
src
App.vue 2KB
main.js 162B
img
clicked.webp 15KB
normal1.webp 18KB
clicked1.webp 9KB
normal.webp 11KB
css
reset.scss 4KB
package.json 428B
public
favicon.ico 4KB
index.html 611B
vue.config.js 110B
.gitignore 231B
README.md 274B
.github
workflows
ci.yml 587B
src
eventBus.js 278B
utils.js 223B
index.js 8KB
.babelrc 46B
dist
index.js 18KB
img
demo.gif 6.63MB
package.json 554B
rollup.config.js 513B
.gitignore 31B
README.md 4KB
共 25 条
- 1
资源评论
热爱技术。
- 粉丝: 2624
- 资源: 7860
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 离线安装包 Adobe Flash Player 32.0.0.156 for Linux 32-bit PPAPI
- javaweb作业jsp内置对象作业:简单购物车功能
- 【java毕业设计】野生动物公益保护系统源码(ssm+mysql+说明文档+LW).zip
- 离线安装包 Adobe Flash Player 32.0.0.156 for Linux 64-bit NPAPI
- 单片机测频率DSN
- 【java毕业设计】学习交流平台源码(ssm+mysql+说明文档+LW).zip
- Jsp内置对象作业:Session、Cookie实现登录功能,记住用户密码功能等
- 【java毕业设计】融资租赁管理系统源码(ssm+mysql+说明文档+LW).zip
- 离线安装包 Adobe Flash Player 32.0.0.156 for Linux 64-bit PPAPI
- 黑客与渗透测试编程之道.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功