# 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 |
热爱技术。
- 粉丝: 2967
- 资源: 7864
最新资源
- 汇川H3U标准程序,程序有本体脉冲控制的三轴定位,有总线控制的汇川伺服定位,轴点动,回零,相对定位绝对定位,程序结构清晰,分模块控制,是工控者学习的好案例
- 松下6轴程序模板 1:plc采用FP-XHC60T ,标准可带6轴程序 2:昆仑通态触摸屏程序(触摸屏附带配方功能,以及产能统计:) 3:项目各种功能完整 该程序为标准框架, a.故障, b.复
- MATLAB Elman神经网络数据预测,BP神经网络预测,电力负荷预测模型研究 负荷预测的核心问题是预测的技术问题,或者说是预测的数学模型 传统的数学模型是用显示的数学表达式加以描述,具有计算量小
- 驱动FOC 电机学习FOC控制 高频注入 推理过程和代码实现以及原理图 FOC矢量控制 FOC驱动无刷驱动foc无刷电机驱动方式学习 可用于驱动无刷电机,永磁同步电机 FOC框架、坐标变、SVPWM
- MATLAB基于卡尔曼滤波的锂蓄电池SOC设计 用自适应卡尔曼滤波方法,基于锂离子动力电池等效电路模型,在未知干扰噪声环境下,在线估计电动汽车锂离子动力电池荷电状态 (SOC) 采用基本卡尔曼滤波和
- 风光储交流微网(双向储能变流器) 含: 1.永磁直驱风机+mppt+整流+并网逆变 mppt采用扫描搜索法 整流采用转速外环电流内环双闭环控制 并网逆变采用电压外环电流内环控制 满功率运行 2.PV+
- 西门子200smart模拟量处理模块带滤波,带报警 好用的200smart模拟量输入处理程序,已经封装成可直接调用程序 功能: 处理电压,电流或者RTD模拟量输入信号,把输入通道值转化为模拟量值,且
- 纯电动汽车动力经济性仿真,Cruise和Simulink联合仿真,提供Cruise整车模型和simuink策略模型,策略主要为BMS、再生制动和电机驱动策略,内含注释模型和详细解析文档
- 微观孔隙建模插件,可指定生成任意孔隙率的随机孔隙模型 模型可导入comsol、abaqus、ansys、fluent、ls dyna等有限元软件进行模拟 孔隙渗流、多孔介质电流模拟、多孔材料等
- 汇川四轴机械手电芯上下料程序 汇川ROBOT机器人电芯自动上料程序,与PLC信号对接,进行电芯取放料控制,待机位,安全位,矩阵料盘控制,多个NG位,扫码位,运动控制,左手势,右手势,程序注释齐全 附
- MATLAB代码:基于二阶锥优化及OLTC档位选择的配电网优化调度 关键词:OLTC档位选择 二阶锥优化 动态优化 最优潮流 参考文档:《主动配电网最优潮流研究及其应用实例》仅参考部分模型,非完全复
- Abaqus三维随机生成圆形骨料python代码~ 随机圆形骨料-互不相交,随机生成半径不同的圆形实体(符合混凝土当中包含圆形骨料等现实问题) 可调节混凝土边界,长,宽,高 ,随机生成圆形骨料 ,半
- MATLAB代码:基于多目标粒子群算法冷热电联供综合能源系统运行优化 关键词:综合能源 冷热电三联供 粒子群算法 多目标优化 参考文档:《基于多目标算法的冷热电联供型综合能源系统运行优化》 仿真平台
- MATLAB代码:基于蒙特卡洛算法的电动汽车充电负荷预测 关键词:蒙特卡洛 电动汽车 充电负荷预测 参考文档:《电动汽车充电负荷预测方法及应用研究》参考第3.2节,完全复现; 仿真平台:MATL
- MATLAB代码:基于多目标遗传算法的分布式电源选址定容研究 关键词:分布式电源 选址定容 多目标遗传算法 参考文档:《店主自写文档》基本复现; 仿真平台:MATLAB 主要内容:代码主要做的
- 四轮轮毂电机驱动智能电动汽车转向失效容错控制研究 上层控制器首先基于时变线性模型预测控制方法求解期望前轮转角和附加横摆力矩,然后考虑转向执行机构建模不确定性以及路面干扰,设计基于滑模变
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈