游戏摇杆
更新时间:2021-05-27
游戏摇杆
游戏摇杆是互动常用控件之一,用于移动端角色、模型控制。配置一个游戏摇杆需要对应贴图素材(外环和内环)和确定所处屏幕位置,json中配置游戏素材相关,lua脚本中实现摇杆动作回调和游戏逻辑。
Sample case :代码下载
json配置方法如下(//后为注释,实际使用请删除):
//joystick列表
"joysticks": [
{
"name": "joystick1", //joystick名称,用于检索,数据更新
"relative": 0,//相对移动,outer是否跟随触碰
"responseRegion": {//joystick响应范围
"rectangle": {//矩形范围,屏幕百分比范围,含义同hud
"marginLeftRatio": 0,
"marginTopRatio": 0,
"widthRatio": 0.8,
"heightRatio": 0.4
}
},
//外环实际渲染对象的配置,沿用hud节点配置
"outer": {
"name": "outer_hud",
"type": "plane",
"visible": 1,
"touchable": 1,
"material": {
"common": {
"textureList": [
{
"textureName": "res/texture/outer.jpeg"
}
]
}
},
"hudElement": {
"marginLeft": 0.1,
"marginTop": 0.07,
"depthPosition": 0,
"ratio": {
"widthRatio" : 0.3,
"keepAspectRatio":1
}
},
"children": [],
//内环实际渲染对象的配置,沿用hud节点配置,hud位置为相对父节点布局
"inner": {
"name": "inner_hud",
"type": "plane",
"visible": 1,
"touchable": 1,
"material": {
"common": {
"textureList": [
{
"textureName": "res/texture/bear3.jpeg"
}
]
}
},
"hudElement": {
"marginTop": 0.25,
"marginLeft": 0.25,
"depthPosition": 200,
"ratio": {
"heightRatio" : 0.5,
"keepAspectRatio": 1
}
}
}
}
]
游戏摇杆的内外环节点的配置沿用hud节点配置,内环为外环子节点,游戏摇杆可以在json设定为相应区域、相对移动等属性,详情见joystick静态配置文档。
脚本回调配置方法:
local input_controller = scene:get_inut_controller()
local joystick = input_controller:get_joystick_by_name("joystick")
joystick:set_update_handler(joystick_update)
function joystick_update(x,y)
end
回调函数中返回内环的相对移动偏移,根据该偏移控制场景内事件,详情见Joystick接口文档。