更新记录

1.0.0(2023-11-09)

新增


平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
app-vue
钉钉小程序 快手小程序 飞书小程序 京东小程序
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

游戏手柄、游戏轮盘、游戏方向、游戏遥杆

长期维护,欢迎使用,欢迎提出您宝贵的意见

测试了APP,微信小程序,支付宝小程序,H5,按理说是全端兼容的,该插件仅仅用了view标签,触摸事件,以及一些三角函数。

第一步,引用组件

import dyGameHandShank from '@/components/dy-game-hand-shank/index';

第二步,注册组件

components: {
    dyGameHandShank
}

Props

参数 类型 默认值 说明
options Object 见下方 通用配置项
touchAreaStyle Object - 触摸区域样式,仅在此区域内按下手指才触发轮盘,支持几乎所有样式,对象格式的css样式
corona Object 见下方 轮盘配置项
joystick Object 见下方 操纵杆配置项

options配置项

字段 类型 默认值 说明
direction Number 8 轮盘方向,可选值:>=0的数字,0为所有方向,返回0-360°,1为上下,仅支持上下移动,返回0/180°,2为左右,仅支持左右移动,返回90/270°,大于等于3时操作方式支持所有方向,返回角度等分360度,如插件效果图
opacity Number 0.3 轮盘透明度
opacityActive Number 0.5 轮盘激活时透明度

corona配置项

字段 类型 默认值 说明
r Number 150 轮盘半径
x Number 400 轮盘x坐标,圆盘中心为(0,0)
y Number 300 轮盘y坐标,圆盘中心为(0,0)
background String 'rgba(0,159,225,.7)' 轮盘背景,支持所有background的css属性值,比如:图片、渐变等

joystick配置项

字段 类型 默认值 说明
r Number 150 操纵杆半径
background String 'radial-gradient(circle at center, rgba(188,188,188,.9), rgba(255,255,255,.7))' 操纵杆背景,支持所有background的css属性值,比如:图片、渐变等

Events

事件名称 说明 回调参数
change 轮盘操作后的回调函数 angle:角度(0~360°,十二点钟方向为0°,顺时针递增,根据options.direction将圆形等分),speed:速度,x:x坐标,y:y坐标

示例代码


<template>
    <view class="content">
        <dyGameHandShank
                :options="options"
                :touchAreaStyle="touchAreaStyle"
                :corona="corona"
                :joystick="joystick"
                @change="change"
        >
        </dyGameHandShank>
    </view>
</template>

<script>
    import dyGameHandShank from '@/components/dy-game-hand-shank/index'

    export default {
        components: {dyGameHandShank},
        data() {
            return {
                gameHandRes: {},
                options: {
                    direction: 2,
                    opacity: .3,
                    opacityActive: .7,
                },
                touchAreaStyle: { // 触摸区域样式
                    background: 'rgba(255,0,0,.5)',
                    position: 'absolute',
                    left: '0',
                    right: '0',
                    bottom: '0',
                },
                corona: { // 轮盘
                    r: 200,
                    x: 400,
                    y: 220,
                },
                joystick: { // 操纵杆
                    r: 120,
                },
            }
        },
        onLoad() {
            let _self = this;
        },
        methods: {
            change(e) {
                let _self = this;
                _self.gameHandRes = e;
            },
        }
    }
</script>

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问