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