diff --git a/sqr/User/UI/Window/0_Login.nut b/sqr/User/UI/Window/0_Login.nut index a2f94c7..a36d8ac 100644 --- a/sqr/User/UI/Window/0_Login.nut +++ b/sqr/User/UI/Window/0_Login.nut @@ -19,6 +19,9 @@ class _Login_Window extends Yosin_Window { BackGroundMusic = null; + //信息 + PackInfo = null; + constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) { base.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH); @@ -30,6 +33,35 @@ class _Login_Window extends Yosin_Window { //播放音乐 PlayBackgroundMusic(); + + //注册登录回调包 + MySocket.RegisterHandler(2, function(Jso) { + //登录成功 + if (Jso.state) { + HUD_Message(500, 200, "登录成功,正在进入游戏..."); + MySocket.Send(9, null); + } else { + HUD_Message(500, 200, "登录失败"); + } + }.bindenv(this)); + + //注册获取角色列表回包 + MySocket.RegisterHandler(10, function(Jso) { + PackInfo = Jso; + }.bindenv(this)); + //注册获取角色列表的装备回包 + MySocket.RegisterBinaryHandler(10, function(Blob) { + Blob.readn('i'); + foreach(info in PackInfo.charac) { + info.equip <- []; + for (local i = 0; i< 15; i++) { + local value = Blob.readn('i'); + info.equip.append(value); + } + } + local Window = Sq_CreateWindow(_Select_Character_Window, "选择角色界面窗口", 0, 0, 1066, 600, 0); + Window.Init(PackInfo); + }.bindenv(this)); } function PlayBackgroundMusic() { diff --git a/sqr/User/UI/Window/1_Select_Character.nut b/sqr/User/UI/Window/1_Select_Character.nut index 64a9b2e..03e510a 100644 --- a/sqr/User/UI/Window/1_Select_Character.nut +++ b/sqr/User/UI/Window/1_Select_Character.nut @@ -77,11 +77,12 @@ class _Select_Character_SettingBackground_Window extends Yosin_Window { IsIndependent = false; //是否可见 - // Visible = false; + Visible = false; //选择背景按钮集合 SettingBackgroundButtonList = null; + //背景对象 Background = null; ScrollObject = null; @@ -90,9 +91,7 @@ class _Select_Character_SettingBackground_Window extends Yosin_Window { base.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH); SettingBackgroundButtonList = []; - SetClipRect(0, 0, gWidth, gHeight); - // ShowBorder(true); - // SetLayerOpacity(1); + SetClipRect(5, 9, gWidth, gHeight - 9); } function Init() { @@ -103,13 +102,17 @@ class _Select_Character_SettingBackground_Window extends Yosin_Window { function RegisterDraw() { //背景 Background = CL_SpriteObject("sprite/interface2/selectcharacter_ver2/setup/setup.img", 17); - Addchild(Background); + Background.SetPosition(X, Y); + Background.SetZOrder(-10); + Background.SetVisible(false); + //因为裁切原因 所以要添加到父对象中 + Parent.Addchild(Background); for (local i = 0; i< 24; i++) { local Buf = _Select_Character_SettingBackground_Object_Window(5 + (101 * (i % 2)), 9 + (61 * (i / 2)), 91, 51, i); SettingBackgroundButtonList.push(Buf); //如果是父对象默认构造的默认是勾选状态 - if (i == Parent.Info.Background) { + if (i == Parent.Info.loginImg) { Buf.SelectMask.SetVisible(true); Buf.SelectFlag = true; } @@ -126,10 +129,45 @@ class _Select_Character_SettingBackground_Window extends Yosin_Window { } - //逻辑入口 - function Proc(Dt) { - SyncPos(X, Y); - base.Proc(Dt); + //override + //设置是否可见 通过重载设置可见同步Background的可见性 + function SetVisible(Flag) { + base.SetVisible(Flag); + if (Flag) { + if (Background) Background.SetVisible(true); + } else { + if (Background) Background.SetVisible(false); + } + } + +} +//角色 +class _Select_Character_Chr extends Yosin_Window { + //是否为独立窗口 + IsIndependent = false; + + Info = null; + + constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) { + base.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH); + RegisterDraw(); + } + + function Init(Info) { + this.Info = Info; + RegisterCharac(); + } + + function RegisterDraw() { + local Magic = CL_SpriteObject("sprite/interface2/selectcharacter_ver2/selectcharacter.img", 10); + Addchild(Magic); + } + + function RegisterCharac() { + local Charc = GameObject.CreateCharacter(Info.job, Info.equip); + Charc.SetAnimation("RestAni"); + Charc.SetPosition(48, 12, 0); + Addchild(Charc); } } @@ -150,6 +188,8 @@ class _Select_Character_Window extends Yosin_Window { SettingBackgroundWindow = null; //背景图片 BackGround = null; + //角色遮罩栏 + CharacterMaskBox = null; //信息 Info = null; @@ -193,6 +233,13 @@ class _Select_Character_Window extends Yosin_Window { AddUIChild(SettingBackgroundWindow); //先添加为子对象 因为子对象需要用到父对象 SettingBackgroundWindow.Init(); + + //角色对象 + for (local i = 0; i< 5; i++) { + local Buf = _Select_Character_Chr("选择角色角色对象" + i, 190 + (i * 144), ((i % 2) ? 15 : 0) + 225, 126, 208, 0); + if (i< Info.charac.len()) Buf.Init(Info.charac[i]); + AddUIChild(Buf); + } } function RegisterWidget() { @@ -217,7 +264,6 @@ class _Select_Character_Window extends Yosin_Window { }) SettingButton.Addchild(LoginTextActor); - } //切换背景 @@ -227,23 +273,18 @@ class _Select_Character_Window extends Yosin_Window { BackGround = null; } BackGround = CL_SpriteObject("sprite/interface2/selectcharacter_ver2/background/large/background_large_event.img", Idx); - BackGround.SetZOrder(-10); - - /* - - BackGround = Layer(); - BackGround.Addchild(CL_SpriteObject("sprite/interface2/selectcharacter_ver2/background/large/background_large_event.img", Idx)); - BackGround.SetZOrder(-10); - BackGround.SetPosition(100, 100); - BackGround.SetClipRect(0, 0, 200, 200); - - */ + BackGround.SetZOrder(-100); Addchild(BackGround); } function RegisterDraw() { //大背景 根据玩家的设定背景决定 - ChangeBackground(Info.Background); + ChangeBackground(Info.loginImg); + + //角色遮罩栏 + CharacterMaskBox = Yosin_NineBoxStretch(-4, 330, 1074, 680, "sprite/interface/lenheartwindowcommon.img", 0); + AddUIChild(CharacterMaskBox); + } diff --git a/sqr/User/UI/Window/233_HUD_Message.nut b/sqr/User/UI/Window/233_HUD_Message.nut index 9030c52..5b91b80 100644 --- a/sqr/User/UI/Window/233_HUD_Message.nut +++ b/sqr/User/UI/Window/233_HUD_Message.nut @@ -30,10 +30,10 @@ class HUD_Message extends Yosin_Window { horizontalMargin = 20, // 垂直边距 verticalMargin = 20, - } ) { + }) { - local title = info.rawin("title") ? info.title : "公告"; - local horizontalMargin = info.rawin("horizontalMargin") ? info.horizontalMargin : 20; + local title = info.rawin("title") ? info.title : "公告"; + local horizontalMargin = info.rawin("horizontalMargin") ? info.horizontalMargin : 20; local verticalMargin = info.rawin("verticalMargin") ? info.verticalMargin : 20; // 标题 @@ -59,17 +59,16 @@ class HUD_Message extends Yosin_Window { local verticalMargin = 50 + verticalMargin * 2; cacheH = messageTextActor.GetSize().h + verticalMargin; - print("cacheW:" + cacheW.tostring()); - print("cacheH:" + cacheH.tostring()); - // 默认构造数据 - base.constructor("公告或信息弹窗" + clock().tostring() , gX, gY, cacheW, cacheH, 20); + base.constructor("公告或信息弹窗" + clock().tostring(), gX, gY, cacheW, cacheH, 20); //注册控件 RegisterWidget(); //注册绘制 RegisterDraw(); + + ResetFocus(); } function RegisterWidget() { @@ -84,9 +83,10 @@ class HUD_Message extends Yosin_Window { AddUIChild(titleBackground); //确认按钮 - local confirmButton = Yosin_BaseButton( cacheW / 2 - 28, cacheH - 15, 56, 24 "sprite/interface/lenheartwindowcommon.img", 12); + local confirmButton = Yosin_BaseButton(cacheW / 2 - 28, cacheH - 15, 56, 24 "sprite/interface/lenheartwindowcommon.img", 12); confirmButton.OnClick = function(Button) { - this.RemoveSelf(); + //关闭本窗口 + CloseWindow(); }.bindenv(this); AddUIChild(confirmButton); @@ -96,9 +96,10 @@ class HUD_Message extends Yosin_Window { confirmButton.Addchild(confirmTextActor); //关闭按钮 - local closeButton = Yosin_BaseButton( cacheW - 15, 5, 10, 9 "sprite/interface/lenheartwindowcommon.img", 42); + local closeButton = Yosin_BaseButton(cacheW - 15, 5, 10, 9 "sprite/interface/lenheartwindowcommon.img", 42); closeButton.OnClick = function(Button) { - this.RemoveSelf(); + //关闭本窗口 + CloseWindow(); }.bindenv(this); AddUIChild(closeButton); @@ -109,7 +110,7 @@ class HUD_Message extends Yosin_Window { local titleX = cacheW / 2 - titleTextActor.GetSize().w / 2; // 绘制标题 - titleTextActor.SetPosition( titleX , 2); + titleTextActor.SetPosition(titleX, 2); Addchild(titleTextActor); @@ -117,7 +118,7 @@ class HUD_Message extends Yosin_Window { local messageY = cacheH / 2 - messageTextActor.GetSize().h / 2; // 绘制内容 - messageTextActor.SetPosition( messageX , messageY ); + messageTextActor.SetPosition(messageX, messageY); Addchild(messageTextActor); }