基于 Eva.js 的虚拟摇杆
注意事项:
- 不要设置被添加游戏对象的宽高
- 手指跟随的情况下无法使用anchor
待解决
npm i eva-plugin-joystick
import { Joystick } from 'eva-plugin-joystick'
const go = new GameObject('joystick')
const joystick = go.addComponent(new Joystick({
followPointer: {
open: true,
area: {
x: 0, y: 0,
width: 400,
height: 600
}
}
}))
joystick.on(JOYSTICK_EVENT.Begin, (data) => {
console.log('begin', data)
})
joystick.on(JOYSTICK_EVENT.Drag, (data) => {
console.log('drag', data)
})
joystick.on(JOYSTICK_EVENT.End, (data) => {
console.log('end', data)
})
game.scene.addChild(go)
-
limitRadius
number
optional
摇杆的半径,限制操作杆的移动范围
-
boxImageResource
string
optional
背景图片
-
boxRadius
number
optional
背景图片的半径
-
btnImageResource
string
optional
操作杆的图片
-
btnRadius
number
optional
操作杆图片的半径
-
followPointer
object
optional
手指跟随
-
open
boolean
是否打开手指跟随
-
area
object
request
手指跟随生效的范围 必填
- x
number
- y
number
- width
number
- height
nubmer
- x
-
joystick.on(JOYSTICK_EVENT.Begin, (data) => {
console.log('begin', data)
data.x
data.y
})
参数为摇杆移动的二维向量,-1,1之间
-
JOYSTICK_EVENT.Begin
摇杆开始事件
-
JOYSTICK_EVENT.Drag
摇杆拖拽事件
-
JOYSTICK_EVENT.End
摇杆结束事件
-
x
当前的joystick向量 x 值 -1 ~ 1 之间
-
y
当前的joystick向量 y 值 -1 ~ 1 之间
-
updateParams
当前update事件的参数
-
deltaTime: number;
每帧间隔时间,可以用于物体匀速运动
-
frameCount: number;
当前游戏总帧数
-
currentTime: number;
当前游戏时间
-
fps: number;
当前游戏帧率
-