Compare commits
	
		
			No commits in common. "230ddba3f64ffc382e3b217b2c630a85048993ab" and "eeaeff06ceda143169a65817e42fe2d30f872afd" have entirely different histories.
		
	
	
		
			230ddba3f6
			...
			eeaeff06ce
		
	
		|  | @ -185,94 +185,6 @@ class Yosin_EmeStretch extends Yosin_CommonUi { | |||
|     } | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| //九宫格拉伸 | ||||
| class Yosin_NineBoxStretch extends Yosin_CommonUi { | ||||
| 
 | ||||
|     constructor(X, Y, W, H, Path, Idx) { | ||||
|         base.constructor(X, Y, W, H); | ||||
|         DrawBackground( W, H, Path, Idx); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     // 绘制 | ||||
|     function DrawBackground(width, height, path, imgId) { | ||||
| 
 | ||||
|         local x = 0; | ||||
|         local y = 0; | ||||
| 
 | ||||
|         // 左上角 | ||||
|         local backgroundTopLeft = CL_SpriteObject(path, imgId); | ||||
|         backgroundTopLeft.SetPosition(x, y); | ||||
|         Addchild(backgroundTopLeft); | ||||
|         // 左上角图片大小 | ||||
|         local cornerImgSize = backgroundTopLeft.GetSize(); | ||||
|         local cornerWidth = cornerImgSize.w; | ||||
|         local cornerHeight = cornerImgSize.h; | ||||
| 
 | ||||
|         // 中间 | ||||
|         local backgroundCenter = CL_SpriteObject(path, imgId + 4); | ||||
|         backgroundCenter.SetPosition(cornerWidth, y + cornerHeight); | ||||
|         Addchild(backgroundCenter); | ||||
|         // 中间图片大小 | ||||
|         local centerImgSize = backgroundCenter.GetSize(); | ||||
|         local centerWidth = centerImgSize.w; | ||||
|         local centerHeight = centerImgSize.h; | ||||
| 
 | ||||
| 
 | ||||
|         local scaleW = (width.tofloat() - cornerWidth.tofloat() * 2.0) / centerWidth.tofloat(); | ||||
|         local scaleH = (height.tofloat() - y.tofloat() - cornerHeight.tofloat()) / centerHeight.tofloat(); | ||||
| 
 | ||||
|         // 上边 | ||||
|         local backgroundTop = CL_SpriteObject(path, imgId + 1); | ||||
|         backgroundTop.SetPosition(cornerWidth, y); | ||||
|         backgroundTop.SetScale(scaleW, 1); | ||||
|         Addchild(backgroundTop); | ||||
| 
 | ||||
|         // 右上角 | ||||
|         local backgroundTopRight = CL_SpriteObject(path, imgId + 2); | ||||
|         backgroundTopRight.SetPosition(width - cornerWidth, y); | ||||
|         Addchild(backgroundTopRight); | ||||
| 
 | ||||
|         // 左边 | ||||
|         local backgroundLeft = CL_SpriteObject(path, imgId + 3); | ||||
|         backgroundLeft.SetPosition(x, y + cornerHeight ); | ||||
|         backgroundLeft.SetScale(1, scaleH); | ||||
|         Addchild(backgroundLeft); | ||||
| 
 | ||||
|         // 中间 | ||||
|         backgroundCenter.SetScale(scaleW, scaleH); | ||||
| 
 | ||||
|         // 右边 | ||||
|         local backgroundRight = CL_SpriteObject(path, imgId + 5); | ||||
|         backgroundRight.SetPosition(width - cornerWidth, y + cornerHeight); | ||||
|         backgroundRight.SetScale(1, scaleH); | ||||
|         Addchild(backgroundRight); | ||||
| 
 | ||||
|         // 左下角 | ||||
|         local backgroundBottomLeft = CL_SpriteObject(path, imgId + 6); | ||||
|         backgroundBottomLeft.SetPosition(x, height - cornerHeight); | ||||
|         Addchild(backgroundBottomLeft); | ||||
| 
 | ||||
|         // 下边 | ||||
|         local backgroundBottom = CL_SpriteObject(path, imgId + 7); | ||||
|         backgroundBottom.SetPosition(cornerWidth, height - cornerHeight); | ||||
|         backgroundBottom.SetScale( scaleW , 1); | ||||
|         Addchild(backgroundBottom); | ||||
| 
 | ||||
|         // 右下角 | ||||
|         local backgroundBottomRight = CL_SpriteObject(path, imgId + 8); | ||||
|         backgroundBottomRight.SetPosition(width - cornerWidth, height - cornerHeight); | ||||
|         Addchild(backgroundBottomRight); | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| //拼接按钮 | ||||
| class Yosin_SplicingButton extends Yosin_CommonUi { | ||||
|     //按钮状态 | ||||
|  |  | |||
|  | @ -66,6 +66,5 @@ sqr/User/UI/Widget/Scroll_Bar.nut | |||
| 
 | ||||
| sqr/User/UI/Window/0_Login.nut | ||||
| sqr/User/UI/Window/1_Select_Character.nut | ||||
| sqr/User/UI/Window/233_HUD_Message.nut | ||||
| 
 | ||||
| sqr/User/main.nut | ||||
|  | @ -19,9 +19,6 @@ 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); | ||||
| 
 | ||||
|  | @ -33,35 +30,6 @@ 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() { | ||||
|  |  | |||
|  | @ -77,12 +77,11 @@ class _Select_Character_SettingBackground_Window extends Yosin_Window { | |||
|     IsIndependent = false; | ||||
| 
 | ||||
|     //是否可见 | ||||
|     Visible = false; | ||||
|     // Visible = false; | ||||
| 
 | ||||
|     //选择背景按钮集合 | ||||
|     SettingBackgroundButtonList = null; | ||||
| 
 | ||||
|     //背景对象 | ||||
|     Background = null; | ||||
| 
 | ||||
|     ScrollObject = null; | ||||
|  | @ -91,7 +90,9 @@ class _Select_Character_SettingBackground_Window extends Yosin_Window { | |||
|         base.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH); | ||||
|         SettingBackgroundButtonList = []; | ||||
| 
 | ||||
|         SetClipRect(5, 9, gWidth, gHeight - 9); | ||||
|         SetClipRect(0, 0, gWidth, gHeight); | ||||
|         // ShowBorder(true); | ||||
|         // SetLayerOpacity(1); | ||||
|     } | ||||
| 
 | ||||
|     function Init() { | ||||
|  | @ -102,17 +103,13 @@ class _Select_Character_SettingBackground_Window extends Yosin_Window { | |||
|     function RegisterDraw() { | ||||
|         //背景 | ||||
|         Background = CL_SpriteObject("sprite/interface2/selectcharacter_ver2/setup/setup.img", 17); | ||||
|         Background.SetPosition(X, Y); | ||||
|         Background.SetZOrder(-10); | ||||
|         Background.SetVisible(false); | ||||
|         //因为裁切原因 所以要添加到父对象中 | ||||
|         Parent.Addchild(Background); | ||||
|         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.loginImg) { | ||||
|             if (i == Parent.Info.Background) { | ||||
|                 Buf.SelectMask.SetVisible(true); | ||||
|                 Buf.SelectFlag = true; | ||||
|             } | ||||
|  | @ -129,45 +126,10 @@ class _Select_Character_SettingBackground_Window extends Yosin_Window { | |||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //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); | ||||
|     //逻辑入口 | ||||
|     function Proc(Dt) { | ||||
|         SyncPos(X, Y); | ||||
|         base.Proc(Dt); | ||||
|     } | ||||
| 
 | ||||
| } | ||||
|  | @ -188,8 +150,6 @@ class _Select_Character_Window extends Yosin_Window { | |||
|     SettingBackgroundWindow = null; | ||||
|     //背景图片 | ||||
|     BackGround = null; | ||||
|     //角色遮罩栏 | ||||
|     CharacterMaskBox = null; | ||||
| 
 | ||||
|     //信息 | ||||
|     Info = null; | ||||
|  | @ -233,13 +193,6 @@ 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() { | ||||
|  | @ -264,6 +217,7 @@ class _Select_Character_Window extends Yosin_Window { | |||
|         }) | ||||
|         SettingButton.Addchild(LoginTextActor); | ||||
| 
 | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
|     //切换背景 | ||||
|  | @ -273,18 +227,23 @@ 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(-100); | ||||
|         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); | ||||
| 
 | ||||
|         */ | ||||
|         Addchild(BackGround); | ||||
|     } | ||||
| 
 | ||||
|     function RegisterDraw() { | ||||
|         //大背景 根据玩家的设定背景决定 | ||||
|         ChangeBackground(Info.loginImg); | ||||
| 
 | ||||
|         //角色遮罩栏 | ||||
|         CharacterMaskBox = Yosin_NineBoxStretch(-4, 330, 1074, 680, "sprite/interface/lenheartwindowcommon.img", 0); | ||||
|         AddUIChild(CharacterMaskBox); | ||||
| 
 | ||||
|         ChangeBackground(Info.Background); | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,134 +0,0 @@ | |||
| /* | ||||
| 文件名:233_HUD_Message.nut | ||||
| 路径:User/UI/Window/233_HUD_Message.nut | ||||
| 创建日期:2024-12-14	08:10 | ||||
| 文件用途: 公告或信息弹窗 | ||||
| */ | ||||
| 
 | ||||
| class HUD_Message extends Yosin_Window { | ||||
|     //调试模式 | ||||
|     // DeBugMode = true; | ||||
| 
 | ||||
|     //不是窗口 | ||||
|     // NoWindow = true; | ||||
| 
 | ||||
|     //是否可见 | ||||
|     // Visible = false; | ||||
| 
 | ||||
|     BackGroundMusic = null; | ||||
| 
 | ||||
|     cacheW = 230; | ||||
|     cacheH = 155; | ||||
| 
 | ||||
|     titleTextActor = null; | ||||
|     messageTextActor = null; | ||||
| 
 | ||||
|     constructor(gX, gY, message, info = { | ||||
|         // 标题 | ||||
|         title = "公告", | ||||
|         // 水平边距 | ||||
|         horizontalMargin = 20, | ||||
|         // 垂直边距 | ||||
|         verticalMargin = 20, | ||||
|     }) { | ||||
| 
 | ||||
|         local title = info.rawin("title") ? info.title : "公告"; | ||||
|         local horizontalMargin = info.rawin("horizontalMargin") ? info.horizontalMargin : 20; | ||||
|         local verticalMargin = info.rawin("verticalMargin") ? info.verticalMargin : 20; | ||||
| 
 | ||||
|         // 标题 | ||||
|         titleTextActor = FontAssetManager.GenerateNormal(title, true, { | ||||
|             color = sq_RGBA(206, 189, 140, 255), | ||||
|             alignment = TextAlign.Center, | ||||
|         }); | ||||
| 
 | ||||
|         // 标题动态宽度 | ||||
|         if (titleTextActor.GetSize().w > cacheW - 40) { | ||||
|             cacheW = titleTextActor.GetSize().w + 40; | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|         // 内容 | ||||
|         messageTextActor = FontAssetManager.GenerateNormal(message, false, { | ||||
|             color = sq_RGBA(206, 189, 140, 255), | ||||
|             alignment = TextAlign.Center, | ||||
|             wrap_width = cacheW - horizontalMargin * 2, | ||||
|         }); | ||||
| 
 | ||||
|         //  内容动态高度 | ||||
|         local verticalMargin = 50 + verticalMargin * 2; | ||||
|         cacheH = messageTextActor.GetSize().h + verticalMargin; | ||||
| 
 | ||||
|         // 默认构造数据 | ||||
|         base.constructor("公告或信息弹窗" + clock().tostring(), gX, gY, cacheW, cacheH, 20); | ||||
| 
 | ||||
| 
 | ||||
|         //注册控件 | ||||
|         RegisterWidget(); | ||||
|         //注册绘制 | ||||
|         RegisterDraw(); | ||||
| 
 | ||||
|         ResetFocus(); | ||||
|     } | ||||
| 
 | ||||
|     function RegisterWidget() { | ||||
|         //背景 | ||||
|         local background = Yosin_NineBoxStretch(-1, 15, cacheW + 2, cacheH, "sprite/interface/lenheartwindowcommon.img", 97); | ||||
|         AddUIChild(background); | ||||
|         local twoBackground = Yosin_NineBoxStretch(4, 20, cacheW - 8, cacheH - 36, "sprite/interface/lenheartwindowcommon.img", 97); | ||||
|         AddUIChild(twoBackground); | ||||
| 
 | ||||
|         // 绘制标题背景 | ||||
|         local titleBackground = Yosin_EmeStretch(0, 0, cacheW, 20, "sprite/interface/lenheartwindowcommon.img", 609); | ||||
|         AddUIChild(titleBackground); | ||||
| 
 | ||||
|         //确认按钮 | ||||
|         local confirmButton = Yosin_BaseButton(cacheW / 2 - 28, cacheH - 15, 56, 24 "sprite/interface/lenheartwindowcommon.img", 12); | ||||
|         confirmButton.OnClick = function(Button) { | ||||
|             //关闭本窗口 | ||||
|             CloseWindow(); | ||||
|         }.bindenv(this); | ||||
|         AddUIChild(confirmButton); | ||||
| 
 | ||||
|         // 绘制标题 | ||||
|         local confirmTextActor = FontAssetManager.GenerateNormal("确认", sq_RGBA(206, 189, 140, 255), true); | ||||
|         confirmTextActor.SetPosition(17, 6); | ||||
|         confirmButton.Addchild(confirmTextActor); | ||||
| 
 | ||||
|         //关闭按钮 | ||||
|         local closeButton = Yosin_BaseButton(cacheW - 15, 5, 10, 9 "sprite/interface/lenheartwindowcommon.img", 42); | ||||
|         closeButton.OnClick = function(Button) { | ||||
|             //关闭本窗口 | ||||
|             CloseWindow(); | ||||
|         }.bindenv(this); | ||||
|         AddUIChild(closeButton); | ||||
| 
 | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
|     function RegisterDraw() { | ||||
| 
 | ||||
|         local titleX = cacheW / 2 - titleTextActor.GetSize().w / 2; | ||||
|         // 绘制标题 | ||||
|         titleTextActor.SetPosition(titleX, 2); | ||||
|         Addchild(titleTextActor); | ||||
| 
 | ||||
| 
 | ||||
|         local messageX = cacheW / 2 - messageTextActor.GetSize().w / 2; | ||||
|         local messageY = cacheH / 2 - messageTextActor.GetSize().h / 2; | ||||
| 
 | ||||
|         // 绘制内容 | ||||
|         messageTextActor.SetPosition(messageX, messageY); | ||||
|         Addchild(messageTextActor); | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     //逻辑入口 | ||||
|     function Proc(Dt) { | ||||
| 
 | ||||
|         SyncPos(X, Y); | ||||
|         base.Proc(Dt); | ||||
|     } | ||||
| 
 | ||||
| } | ||||
|  | @ -169,8 +169,5 @@ | |||
|     }, | ||||
|     "User/UI/Widget/Drag_Button.nut": { | ||||
|         "description": "拖动按钮" | ||||
|     }, | ||||
|     "User/UI/Window/233_HUD_Message.nut": { | ||||
|         "description": "公告弹窗" | ||||
|     } | ||||
| } | ||||
		Loading…
	
		Reference in New Issue