输入控制

本节将介绍手势操作以及陀螺仪的使用方法. 游戏最重要的部分就是玩家和游戏的交互,这节介绍玩家与游戏如何交互,主要包含触摸屏幕以及控制陀螺仪。


1. 节点系统事件

UI控件具有完整的事件监听机制, 并且提供了基础的控件系统事件, 以下将介绍这些事件的使用方式.

开发者可以注册UI控件的事件监听器:

    ...
    // 注册触摸事件
    pNode:AddTouchEventListener(function(node, type)
        --TODO:
    end)  
    // 注册点击事件
    pNode:AddClickEventListener(function(node)
        --TODO:
    end)
    // 注册控件事件
    pNode:AddWidgetEventListener(function(node, type)
        --TODO:
    end)
    ...

通过把回调函数当作参数

1.1. 触摸事件类型

枚举对象定义 意义 控件类型
XUIWidget.XUI_BEGAN 当手指触点落在目标节点区域内时 XUIWidget
XUIWidget.XUI_MOVED 当手指在屏幕上目标节点区域内移动时 XUIWidget
XUIWidget.XUI_ENDED 当手指在目标节点区域内离开屏幕时 XUIWidget
XUIWidget.XUI_CANCELED 当手指在目标节点区域外离开屏幕时 XUIWidget

1.2. 控件事件类型

枚举对象定义 意义 控件类型
XUICheckBox.SELECTED CheckBox选中时 XUICheckBox
XUICheckBox.UNSELECTED CheckBox取消选中时 XUICheckBox
XUIComboBox.SELECTED_CHANGED ComboBox选项改变时 XYUIComboBox
XUIListView.ON_SELECTED_ITEM_START ListView 选择Item按下时 XUIListView
XUIListView.ON_SELECTED_ITEM_END ListView 选择Item离开屏幕时 XUIListView
XUIPageView.TURNING PageView 翻页时 XUIPageView
XUIRadioButton.SELECTED RadioButton 选中时 XUIRadioButton
XUIRadioButton.UNSELECTED RadioButton 取消选中时 XUIRadioButton
XUIRadioButtonGroup.SELECT_CHANGED RadioButtonGroup 选项改变时 XUIRadioButtonGroup
XUIScrollView.XUI_SCROLL_TO_TOP ScrollView 滚动到顶部时 XUIScrollView
XUIScrollView.XUI_SCROLL_TO_BOTTOM ScrollView 滚动到底部时 XUIScrollView
XUIScrollView.XUI_SCROLL_TO_LEFT ScrollView 滚动到左侧时 XUIScrollView
XUIScrollView.XUI_SCROLL_TO_RIGHT ScrollView 滚动到右侧时 XUIScrollView
XUIScrollView.XUI_SCROLLING ScrollView 正在滚动时 XUIScrollView
XUIScrollView.XUI_BOUNCE_TOP ScrollView XUIScrollView
XUIScrollView.XUI_BOUNCE_BOTTOM ScrollView XUIScrollView
XUIScrollView.XUI_BOUNCE_LEFT ScrollView XUIScrollView
XUIScrollView.XUI_BOUNCE_RIGHT ScrollView XUIScrollView
XUIScrollView.XUI_CONTAINER_MOVED ScrollView 内部容器移动时 XUIScrollView
XUIScrollView.XUI_SCROLLING_BEGAN ScrollView 开始滚动时 XUIScrollView
XUIScrollView.XUI_SCROLLING_ENDED ScrollView 停止滚动时 XUIScrollView
XUIScrollView.XUI_AUTOSCROLL_ENDED ScrollView 自动滚动结束时 XUIScrollView
XUIScrollView.XUI_TOP_ON_RELEASE ScrollView XUIScrollView
XUIScrollView.XUI_BOTTOM_ON_RELEASE ScrollView XUIScrollView
XUISlider.XUI_ON_PERCENTAGE_CHANGED XUISlider XUISlider
XUISlider.XUI_ON_SLIDEBALL_DOWN XUISlider XUISlider
XUISlider.XUI_ON_SLIDEBALL_UP XUISlider XUISlider
XUISlider.XUI_ON_SLIDEBALL_CANCEL XUISlider XUISlider

关于各个控件输入后的监听事件请参看: UISceneComponent

1.3. 全局事件

全局事件出发条件是当UI没有控件拦截消息时,将会出发全局事件, 全局事件类型包含 点击 抬起 移动 取消等。

    local pGestureListener = xe.GestureEventListenerV1:Create();
    //绑定全局点击事件
    pGestureListener:RegisterHandler(function(sender, param)
        if param.eState == param.Pressed then
            ...
        end
    end, xe.Handler.EVENT_GESTURE_CLICK);
    //绑定全局移动事件
    pGestureListener:RegisterHandler(function(sender, param)
        if param.eState == param.Moved then
            ...
        elseif param.eState == param.Stopped then
            ...
        end
    end, xe.Handler.EVENT_GESTURE_MOVE);
    //注册事件
    xe.Director:GetInstance():GetEventDispatcher():AddEventListener(pGestureListener, self.pScene)
@Copyright © cosmos 2019 all right reserved,powered by Gitbook修订时间: 2021-04-12 18:28:17

results matching ""

    No results matching ""