UI API额外的客户端APIExtraUIGetInputVectorHideHudGUIHideJumpGuiHideNeteaseStoreGuiHideSlotBarGuiHideSneakGuiHideSwimGuiHideWalkGuiSetInputModeSetResponseSetTextDefaultFont界面节点的APIScreenNodeAddTouchEventHandlerCloneGetAllChildrenPathGetChildrenNameGetPositionGetSizeGetTextColorRemoveComponentSetCrossHairSetEditTextMaxLengthSetGridDimensionSetPositionSetRemoveSetScreenVisibleSetSizeSetSpriteSetSpriteBrightSetSpriteGraySetStackGridCountSetTextSetTextColorSetTextFontSizeSetTouchEnableSetUiModelSetVisible
UI API
下面是UI的一些API接口文档,关于UI的使用请参照《UI使用文档.md》。
下面的文档分为两个部分,一部分是在extraClientApi中,另一部分是ScreenNode基类的成员函数。
额外的客户端API
extraClientApi中界面的一些有用的API接口函数。
ExtraUI
GetInputVector
描述
返回值为当前玩家的操作的移动向量
返回值
数据类型 说明 tuple(x, y) 返回值分别为x轴和y轴的向量值,取值范围为[0, 1],以操作中心为原点,up上和left左为正方向,down下和right右为负方向 示例
xxxxxxxxxximport extraClientApi as clientApiinputVector = clientApi.GetInputVector()
HideHudGUI
描述
隐藏HUD游戏界面的游戏原生UI
参数
参数名 数据类型 说明 isHide boolean True为隐藏原生HUD,False为恢复显示 返回值
空
示例
xxxxxxxxxximport extraClientApi as clientApiclientApi.HideHudGUI(True)
HideJumpGui
描述
隐藏游戏中右下角的跳跃按钮
参数
参数名 数据类型 说明 isHide boolean 是否隐藏,True为隐藏,False为显示 返回值
空
示例
xxxxxxxxxximport extraClientApi as clientApiclientApi.HideJumpGui(True)
HideNeteaseStoreGui
描述
隐藏游戏中的网易商店按钮
参数
参数名 数据类型 说明 isHide boolean 是否隐藏,True为隐藏,False为显示 返回值
空
示例
xxxxxxxxxximport extraClientApi as clientApiclientApi.HideNeteaseStoreGui(True)
HideSlotBarGui
描述
隐藏游戏中底部中间的物品栏界面
参数
参数名 数据类型 说明 isHide boolean 是否隐藏,True为隐藏,False为显示 返回值
空
示例
xxxxxxxxxximport extraClientApi as clientApiclientApi.HideSlotBarGui(True)
HideSneakGui
描述
隐藏游戏中左下角方向键的中心处潜行按钮
参数
参数名 数据类型 说明 isHide boolean 是否隐藏,True为隐藏,False为显示 返回值
空
示例
xxxxxxxxxximport extraClientApi as clientApiclientApi.HideSneakGui(True)
HideSwimGui
描述
隐藏游戏中的浮潜按钮
参数
参数名 数据类型 说明 isHide boolean 是否隐藏,True为隐藏,False为显示 返回值
空
示例
xxxxxxxxxximport extraClientApi as clientApiclientApi.HideSwimGui(True)
HideWalkGui
描述
隐藏游戏中右上角的移动类型按钮
参数
参数名 数据类型 说明 isHide boolean 是否隐藏,True为隐藏,False为显示 返回值
空
示例
xxxxxxxxxximport extraClientApi as clientApiclientApi.HideWalkGui(True)
SetInputMode
描述
设置UI的输入模式,输入模式影响是否可以同时控制游戏操作。
参数
参数名 数据类型 说明 mode int 取值为0或1,0为HUD的操作模式,1为UI的操作模式。 返回值
空
示例
xxxxxxxxxximport extraClientApi as clientApiclientApi.SetInputMode(1)
SetResponse
描述
设置原生UI是否响应,详见UI文档
参数
参数名 数据类型 说明 response boolean 点击UI时是否屏蔽下层敲击方块/攻击实体 返回值
空
示例
xxxxxxxxxximport extraClientApi as clientApiclientApi.SetResponse(False)
SetTextDefaultFont
描述
设置Label文本框的默认字体,需要在创建某一需要指定默认字体的界面之前调用该接口,防止出现没有汉字时是MC字体,有汉字时是汉字字体。
参数
参数名 数据类型 说明 font str 字体的取值范围[default, rune, unicode, smooth],其中default是默认MC字体,unicode为中文字体。 返回值
空
示例
xxxxxxxxxximport extraClientApi as clientApiclientApi.SetTextDefaultFont("unicode")
界面节点的API
ScreenNode的一些有用的函数,界面Node节点的获取方式在《UI使用文档.md》中有详细说明。
xxxxxxxxxx import client.extraClientApi as clientApi uiNode = clientApi.GetUI("myModName", "myUIName")假设下文中的函数,uiNode为获取到的ScreenNode继承类,调用的UI界面是按下面的节点树组织结构的
xxxxxxxxxxmy_namespace| main| image| image_button| text1| panel| text2| panel2| text_edit_box
ScreenNode
AddTouchEventHandler
描述
设置按钮的回调函数
参数
参数名 数据类型 说明 componentPath str 为从main节点开始,被删除控件路径 callbackFunc function 回调函数,必须是UI的类函数 args dict 默认为None,详细说明请见备注。 返回值
空
示例
xxxxxxxxxxclass BattleUI(ScreenNode):def __init__(self, namespace, name, param):ScreenNode.__init__(self, namespace, name, param)print "ui init"#回调函数def OnButtonTouch(self, args):touchEventEnum = clientApi.GetMinecraftEnum().TouchEvent#按钮事件touchEvent = args["TouchEvent"]#点击坐标touchPos = args["TouchPosX"], args["TouchPosY"]#触控在按钮范围内弹起时if touchEvent == touchEventEnum.TouchUp:print "============= touch ========= up"#按钮按下时elif touchEvent == touchEventEnum.TouchDown:print "============= touch ========= down"#触控在按钮范围外弹起时elif touchEvent == touchEventEnum.TouchCancel:print "============= touch ========= cancel"#按下后触控移动时elif touchEvent == touchEventEnum.TouchMove:print "============= touch ========= move"def Create(self):#注册按钮响应的回调函数self.AddTouchEventHandler("/panel/test_btn", self.OnButtonTouch, {"isSwallow":True})备注
AddTouchEventHandler参数args说明:
关键字 数据类型 说明 isSwallow bool 默认为True, 按钮是否吞噬事件;或为Ture时,点击按钮时,点击事件不会穿透到世界。如破坏方块、镜头转向不会被响应
若要监听TouchMove事件,button的json里is_handle_button_move_event必须设置为true 且 button_mappings必须设置为[]。json可以参考《3-4 UI说明文档》控件介绍中的Image Button。args参数解释如下:
xxxxxxxxxx| 参数 | 类型 | 解释 || ----------------- | ----- | ------------------------------------------------------------ || #collection_name | str | 按钮所属的集合名称 || #collection_index | int | 按钮在集合所属的集合序号 || ButtonState | int | 按钮的状态:Up为0,Down为1,默认是-1,建议使用New || TouchEvent | int | 按钮的状态新版本:Up为0,Down为1,Cancel为3,Move为4,默认是-1 || PrevButtonDownID | str | 上一个被点击Down的按钮的ID,如果没有取值为"-1" || TouchPosX | float | 按钮被点击时屏幕上的UI坐标X值 || TouchPosY | float | 按钮被点击时屏幕上的UI坐标Y值 || ButtonPath | str | 被点击的按钮的ComponentPath |
Clone
描述
克隆一个已有的控件,修改它的名称,并将它挂接到指定的父节点上。
参数
参数名 数据类型 说明 componentPath str 为从main节点开始的控件路径 parentPath str 为从main节点开始,父节点的控件路径 newName str 为被克隆的控件名称,因此克隆完了之后新控件的父节点路径为parentPath 返回值
空
示例
xxxxxxxxxx# we want to clone text2 named text3 on panelparentPath = "/panel"text2Path = "/panel/text2"text3Name = "text3"uiNode.Clone(text2Path, parentPath, text3Name)
GetAllChildrenPath
描述
获取所有子节点的路径list
参数
参数名 数据类型 说明 parentPath str 为从main节点开始,父节点的控件路径 返回值
数据类型 说明 list 返回父节点下的子节点的路径,会递归返回所有子节点,若节点无子节点,返回空list 示例
xxxxxxxxxx# get panel's all children pathnode.GetAllChildrenPath("/panel")
GetChildrenName
描述
获取子节点的名称list
参数
参数名 数据类型 说明 parentPath str 为从main节点开始,父节点的控件路径 返回值
数据类型 说明 list 返回父节点下的子节点的名称,不会递归返回所有子节点,若节点无子节点,返回空list 示例
xxxxxxxxxx# get panel's children namenode.GetChildrenName("/panel")
GetPosition
描述
获取控件相对父节点的坐标
参数
参数名 数据类型 说明 componentPath str 为从main节点开始的控件路径 返回值
数据类型 说明 tuple(x,y) 该控件相对父节点的坐标信息,x为横轴,y为纵轴 示例
xxxxxxxxxx# we want to get text2 positiontext2Path = "/panel/text2"textPosition = uiNode.GetPosition(text2Path)
GetSize
描述
获取控件的大小
参数
参数名 数据类型 说明 componentPath str 为从main节点开始的控件路径 返回值
数据类型 说明 tuple(x,y) 该控件的大小信息,x为横轴,y为纵轴 示例
xxxxxxxxxx# we want to get text2 sizetext2Path = "/panel/text2"text2Size = uiNode.GetSize(text2Path)
GetTextColor
描述
获取Label文本颜色
参数
参数名 数据类型 说明 componentPath str 为从main节点开始的控件路径 返回值
数据类型 说明 tuple(r,g,b,a) 获取文本的颜色信息(r, g, b, a), 取值[0, 1] 示例
xxxxxxxxxx# we want to get text2 colortext2Path = "/panel/text2"text2Color = uiNode.GetTextColor(text2Path)
RemoveComponent
描述
动态删除某一控件
参数
参数名 数据类型 说明 componentPath str 为从main节点开始,被删除控件路径 parentPath str 为从main节点开始,父节点的控件路径 返回值
空
示例
xxxxxxxxxx# we want to remove text2text2Path = "/panel/text2"parentPath = "/panel"uiNode.RemoveComponent(text2Path, parentPath)
SetCrossHair
描述
设置屏幕中心的十字是否显示
参数
参数名 数据类型 说明 visible bool True为隐藏十字光标,False为恢复 返回值
空
示例
xxxxxxxxxx# we want to hide cross hairuiNode.SetCrossHair(True)
SetEditTextMaxLength
描述
设置输入框的最大输入长度
参数
参数名 数据类型 说明 componentPath str 为从main节点开始的控件路径 maxLength int 输入框可输入的最大长度,取值[0, +∞) 返回值
空
示例
xxxxxxxxxx# we want to set text_edit_box max input length 10editTextPath = "/panel2/text_edit_box"uiNode.SetEditTextMaxLength(editTextPath, 10)
SetGridDimension
描述
设置Grid控件的大小
参数
参数名 数据类型 说明 componentPath str 为从main节点开始,Grid控件的路径 dimension tuple(x,y) x,y均为int类型,设置网格大小 返回值
空
示例
xxxxxxxxxx# we want change grid dimensiongridPath = "/grid1"uiNode.SetGridDimension(gridPath, (2, 2))
SetPosition
描述
设置控件相对父节点的坐标
参数
参数名 数据类型 说明 componentPath str 为从main节点开始的控件路径 pos tuple(x,y) 该控件相对父节点的坐标信息,x为横轴,y为纵轴 返回值
空
示例
xxxxxxxxxx# we want to set text2 positiontext2Path = "/panel/text2"pos = (10, 10)uiNode.SetPosition(text2Path, pos)
SetRemove
描述
删除本界面节点
返回值
空
示例
xxxxxxxxxx# we want to remove this screenuiNode.SetRemove()
SetScreenVisible
描述
设置是否显示本界面
参数
参数名 数据类型 说明 visible boolean False为隐藏该界面,True为显示该界面 返回值
空
示例
xxxxxxxxxx# 我们隐藏当前UI的界面uiNode.SetScreenVisible(False)
SetSize
描述
设置控件的大小
参数
参数名 数据类型 说明 componentPath str 为从main节点开始的控件路径 size tuple(x,y) 该控件的大小信息,x为横轴,y为纵轴 返回值
空
示例
xxxxxxxxxx# we want to set text2 sizetext2Path = "/panel/text2"text2Size = (10, 10)uiNode.SetSize(text2Path, text2Size)
SetSprite
描述
给图片空间换指定贴图
参数
参数名 数据类型 说明 componentPath str 为从main节点开始的控件路径 texturePath str 贴图的路径,需要从resource_pack下面的textures目录开始 返回值
空
SetSpriteBright
描述
给图片设置亮度,比直接SetSprite一张图片效率要高
参数
参数名 数据类型 说明 componentPath str 为从main节点开始的控件路径 bright int 取值为[-1, 0, 1]三个值,分别代表着[暗, 正常,亮]三个效果 返回值
空
示例
xxxxxxxxxx# we want set image highlightimagePath = "/image"uiNode.SetSpriteBright(imagePath, 1)
SetSpriteGray
描述
给图片空间置灰,比直接SetSprite一张灰图片效率要高
参数
参数名 数据类型 说明 componentPath str 为从main节点开始的控件路径 gray bool True为将图片置灰,False为恢复原色 返回值
空
示例
xxxxxxxxxx# we want set image grayimagePath = "/image"uiNode.SetSpriteGray(imagePath, True)
SetStackGridCount
描述
设置StackGrid控件的大小
参数
参数名 数据类型 说明 componentPath str 为从main节点开始,Grid控件的路径 count int 设置StackGrid的内容数量 返回值
空
示例
xxxxxxxxxx# we want change stackgrid countstackgridPath = "/stack_grid1"uiNode.SetStackGridCount(stackgridPath, 3)
SetText
描述
设置Label的文本信息
参数
参数名 数据类型 说明 componentPath str 为从main节点开始的控件路径 text str 文本的内容,可以支持样式代码(§可以设置文字的颜色、格式等,该种用法更加灵活多变) 返回值
空
示例
xxxxxxxxxx# we want to set text2 contenttext2Path = "/panel/text2"text = "Hello World!"uiNode.SetText(text2Path, text)
SetTextColor
描述
设置Label文本的颜色
参数
参数名 数据类型 说明 componentPath str 为从main节点开始的控件路径 color tuple(r,g,b,a) 文本的颜色信息(r, g, b, a),取值[0, 1] 返回值
空
示例
xxxxxxxxxx# we want to set text2 greentext2Path = "/panel/text2"color = (0, 1, 0, 0.8)uiNode.SetTextColor(text2Path, color)
SetTextFontSize
描述
设置Label中文本字体的大小
参数
参数名 数据类型 说明 componentPath str 为从main节点开始的控件路径 scale float label的font_size的作用是Label中的默认字体大小,取值有限为[small normal large],这个scale是在这个默认字体的基础上进行缩放字体大小,默认字体大小为1.0 返回值
空
示例
xxxxxxxxxx# set text font sizetext2Path = "/panel/text2"uiNode.SetTextFontSize(text2Path, 0.8)
SetTouchEnable
描述
设置控件是否可点击交互
参数
参数名 数据类型 说明 componentPath str 为从main节点开始的控件路径 enable bool False为不响应,True为恢复响应 返回值
空
示例
xxxxxxxxxx# we want to set image_button unableimageButtonPath = "/image_button"uiNode.SetTouchEnable(imageButtonPath, False)
SetUiModel
描述
删除本界面节点
参数
参数名 数据类型 说明 componentPath str 为从main节点开始,被删除控件路径 modelName str 骨骼模型的名称 返回值
空
示例
xxxxxxxxxx# we want change modelimagePath = "/paper_doll0"uiNode.SetUiModel(imagePath, 'saber')
SetVisible
描述
根据控件路径选择是否显示某控件
参数
参数名 数据类型 说明 componentPath str 为从main节点开始的控件路径 visible boolean False为隐藏该控件,True为显示该控件 返回值
空
示例
xxxxxxxxxx# 我们隐藏panel下面的text2text2Path = "/panel/text2"uiNode.SetVisible(text2Path, False)