用Vue实现一个街机游戏摇杆

本文介绍了如何使用Vue来实现一个街机游戏风格的摇杆组件,包括三层UI结构、圆形拖拽区的限制、杆体的旋转和高度变化,以及摇杆数值的获取。文章还分享了组件化实现和不同UI风格的应用示例,并提供了源码仓库链接。
摘要由CSDN通过智能技术生成

图片

前言


最早实现这个效果,是2011年用Objective-C在iOS里实现的。原仓库地址:https://code.google.com/archive/p/ccjoystick/downloads

在Vue里实现这个东西没啥用处,毕竟Vue也不是一个游戏框架,但是谁叫Vue这个话题的热度最高呢😁,写文章还是希望被更多人看到嘛…

印象里我在不同时期曾经用三种语言分别实现过这个案例。所以无论用什么框架、语言,只要你了解背后的原理,都很容易实现。

三层UI

全部UI分为三层

  • 第一层是杆头,尺寸不会变化,拖拽的视觉效果区。

  • 第二层是杆体,高度可拉伸,用于拟物流模仿真实感。

  • 第三层是底,只是放在画面中,为了让视觉感受更完整。

图片

当然没有第二层和第三层是不影响摇杆功能的,但谁叫我是一个拟物流的前端偏执狂呢?

图片

把这三个层通过绝对定位+z-index叠起来,通过设置touch事件让杆头可以拖动。为了让大家看得清楚层级,我们先把杆头变透明。

圆形的拖拽区

摇杆嘛,圆形的洞里有根杆(不要呀),所以我们必须把拖拽限制在一个圆形区域里

onTouchMove(e){
  var curTouch=e.touches[0];
  var tleft=curTouch.clientX-startLeft;
  var ttop=curTouch.clie
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大帅老猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值