diff --git a/Yosin_Engine.exe b/Yosin_Engine.exe index fc7bcb0..019ffec 100644 Binary files a/Yosin_Engine.exe and b/Yosin_Engine.exe differ diff --git a/sqr/Core/UI_Class/UI_Core.nut b/sqr/Core/UI_Class/UI_Core.nut index 6ba2781..ec158f0 100644 --- a/sqr/Core/UI_Class/UI_Core.nut +++ b/sqr/Core/UI_Class/UI_Core.nut @@ -103,12 +103,12 @@ class Yosin_BaseWindow extends Layer { } //设置回调事件 function SetUpdateFunc(Func) { - CallBackFunc = Func; + UpdateFunc = Func; } //逻辑 function Proc(Dt) { foreach(Window in UI_Childrens) { - // if (Window.CallBackFunc) Window.CallBackFunc(Window); + if (Window.UpdateFunc) Window.UpdateFunc(Window, Dt); Window.Proc(Dt); } //显示才调用Update @@ -125,6 +125,16 @@ class Yosin_BaseWindow extends Layer { Visible = Flag; base.SetVisible(Flag); } + + /* + * @函数作用: 添加子对象 + * @参数 name + */ + function AddUIChild(gChild) { + this.UI_Childrens.append(gChild); + Addchild(gChild); + // gChild.Parent = this; + } } @@ -224,16 +234,6 @@ class Yosin_Window extends Yosin_BaseWindow { } } - /* - * @函数作用: 添加子对象 - * @参数 name - */ - function AddUIChild(gChild) { - this.UI_Childrens.append(gChild); - Addchild(gChild); - // gChild.Parent = this; - } - //关闭窗口 -并没有销毁只是隐藏 function CloseWindow() { this.Visible = false; diff --git a/sqr/Core/UI_Class/UI_Widget.nut b/sqr/Core/UI_Class/UI_Widget.nut index 8541502..f080a87 100644 --- a/sqr/Core/UI_Class/UI_Widget.nut +++ b/sqr/Core/UI_Class/UI_Widget.nut @@ -41,6 +41,7 @@ class Yosin_CommonUi extends Yosin_BaseWindow { local Pos = GetWorldPosition(); if (Math.IsIntersectRect(MousePos_X, MousePos_Y, 1, 1, Pos.x, Pos.y, Width, Height)) isInRect = true; else isInRect = false; + base.OnMouseProc(MousePos_X, MousePos_Y); } //鼠标左键按下回调 function OnMouseLbDown(MousePos_X, MousePos_Y) { @@ -52,10 +53,12 @@ class Yosin_CommonUi extends Yosin_BaseWindow { Sq_PlaySoundEffect(OnClickSound); } } + base.OnMouseLbDown(MousePos_X, MousePos_Y); } //鼠标左键弹起回调 function OnMouseLbUp(MousePos_X, MousePos_Y) { isLBDown = false; + base.OnMouseLbUp(MousePos_X, MousePos_Y); } //鼠标左键单击回调 @@ -64,6 +67,7 @@ class Yosin_CommonUi extends Yosin_BaseWindow { if (Math.IsIntersectRect(MousePos_X, MousePos_Y, 1, 1, Pos.x, Pos.y, Width, Height)) { if (OnClick) OnClick(this); } + base.OnMouseLbClick(MousePos_X, MousePos_Y); } } @@ -72,7 +76,6 @@ class Yosin_CommonUi extends Yosin_BaseWindow { class Yosin_BaseButton extends Yosin_CommonUi { //按钮状态 State = 0; - DWidth = null; Path = null; Idx = null; @@ -82,7 +85,6 @@ class Yosin_BaseButton extends Yosin_CommonUi { constructor(X, Y, W, H, Path, Idx) { - this.DWidth = W; this.Path = Path; this.Idx = Idx; base.constructor(X, Y, W, H); @@ -135,4 +137,46 @@ class Yosin_BaseButton extends Yosin_CommonUi { } ChangeFrame(); } +} + +//三分法拉伸 +class Yosin_EmeStretch extends Yosin_CommonUi { + + Path = null; + Idx = null; + //按钮状态 + SpriteList = null; + + constructor(X, Y, W, H, Path, Idx, Direction = true) { + this.Path = Path; + this.Idx = Idx; + base.constructor(X, Y, W, H); + + SpriteList = []; + SpriteList.push(CL_SpriteObject(Path, Idx)); + SpriteList.push(CL_SpriteObject(Path, Idx + 1)); + SpriteList.push(CL_SpriteObject(Path, Idx + 2)); + + //横向 + if (Direction) { + local ScaleW = (W - SpriteList[0].GetSize().w - SpriteList[2].GetSize().w); + local ScaleRate = ScaleW / SpriteList[1].GetSize().w; + SpriteList[1].SetPosition(SpriteList[0].GetSize().w, 0); + SpriteList[1].SetScale(ScaleRate, 1.0); + SpriteList[2].SetPosition(SpriteList[0].GetSize().w + ScaleW, 0); + } + //纵向 + else { + local ScaleH = (H - SpriteList[0].GetSize().h - SpriteList[2].GetSize().h); + local ScaleRate = ScaleH / SpriteList[1].GetSize().h; + SpriteList[1].SetPosition(0, SpriteList[0].GetSize().h); + SpriteList[1].SetScale(1.0, ScaleRate); + SpriteList[2].SetPosition(0, SpriteList[0].GetSize().h + ScaleH); + } + + foreach(Child in SpriteList) { + Addchild(Child); + } + + } } \ No newline at end of file diff --git a/sqr/SquirrelFileConfig.cfg b/sqr/SquirrelFileConfig.cfg index b114710..37d3433 100644 --- a/sqr/SquirrelFileConfig.cfg +++ b/sqr/SquirrelFileConfig.cfg @@ -61,6 +61,8 @@ sqr/User/Stage/LodingStage.nut sqr/User/Stage/TestStage.nut sqr/User/UI/Widget/InputBox.nut +sqr/User/UI/Widget/Drag_Button.nut +sqr/User/UI/Widget/Scroll_Bar.nut sqr/User/UI/Window/0_Login.nut sqr/User/UI/Window/1_Select_Character.nut diff --git a/sqr/folder-alias.json b/sqr/folder-alias.json index 3dfb04b..5b2926c 100644 --- a/sqr/folder-alias.json +++ b/sqr/folder-alias.json @@ -160,5 +160,14 @@ }, "Core/BaseClass/LayerObject.nut": { "description": "图层类" + }, + "User/UI/Widget/Scroll_Bar.nut": { + "description": "滚动条" + }, + "User/UI/Widget/InputBox.nut": { + "description": "输入框" + }, + "User/UI/Widget/Drag_Button.nut": { + "description": "拖动按钮" } } \ No newline at end of file