| 
									
										
										
										
											2024-12-13 20:51:41 +08:00
										 |  |  | /* | 
					
						
							|  |  |  | 文件名:1_Select_Character.nut | 
					
						
							|  |  |  | 路径:User/UI/Window/1_Select_Character.nut | 
					
						
							|  |  |  | 创建日期:2024-12-13	15:45 | 
					
						
							|  |  |  | 文件用途:选择角色界面窗口 | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | class _Select_Character_SettingBackground_Object_Window extends Yosin_CommonUi { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-13 22:28:47 +08:00
										 |  |  |     //编号 | 
					
						
							|  |  |  |     Idx = 0; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-13 20:51:41 +08:00
										 |  |  |     //蓝色悬停框 | 
					
						
							|  |  |  |     RectMask = null; | 
					
						
							|  |  |  |     //黄色选中框 | 
					
						
							|  |  |  |     SelectMask = null; | 
					
						
							|  |  |  |     //选中状态 | 
					
						
							|  |  |  |     SelectFlag = false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-13 22:28:47 +08:00
										 |  |  |     constructor(x, y, width, height, gIdx) { | 
					
						
							| 
									
										
										
										
											2024-12-13 20:51:41 +08:00
										 |  |  |         base.constructor(x, y, width, height); | 
					
						
							| 
									
										
										
										
											2024-12-13 22:28:47 +08:00
										 |  |  |         //编号 | 
					
						
							|  |  |  |         Idx = gIdx; | 
					
						
							| 
									
										
										
										
											2024-12-13 20:51:41 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         //注册绘制 | 
					
						
							| 
									
										
										
										
											2024-12-13 22:28:47 +08:00
										 |  |  |         RegisterDraw(); | 
					
						
							| 
									
										
										
										
											2024-12-13 20:51:41 +08:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-13 22:28:47 +08:00
										 |  |  |     function RegisterDraw() { | 
					
						
							| 
									
										
										
										
											2024-12-13 20:51:41 +08:00
										 |  |  |         //背景 | 
					
						
							|  |  |  |         local Background = CL_SpriteObject("sprite/interface2/selectcharacter_ver2/background/small/background_small_event.img", Idx); | 
					
						
							|  |  |  |         Background.SetScale(0.7, 0.7); | 
					
						
							|  |  |  |         Addchild(Background); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         RectMask = CL_SpriteObject("sprite/interface2/selectcharacter_ver2/setup/setup.img", 18); | 
					
						
							|  |  |  |         RectMask.SetVisible(false); | 
					
						
							|  |  |  |         Addchild(RectMask); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         SelectMask = CL_SpriteObject("sprite/interface2/selectcharacter_ver2/setup/setup.img", 19); | 
					
						
							|  |  |  |         SelectMask.SetPosition(-2, -2); | 
					
						
							|  |  |  |         SelectMask.SetVisible(false); | 
					
						
							|  |  |  |         Addchild(SelectMask); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //override | 
					
						
							|  |  |  |     function Proc(Dt) { | 
					
						
							|  |  |  |         base.Proc(Dt); | 
					
						
							|  |  |  |         if (isInRect && !SelectFlag) { | 
					
						
							|  |  |  |             RectMask.SetVisible(true); | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             RectMask.SetVisible(false); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //鼠标左键单击回调 | 
					
						
							|  |  |  |     function OnMouseLbClick(MousePos_X, MousePos_Y) { | 
					
						
							|  |  |  |         base.OnMouseLbClick(MousePos_X, MousePos_Y); | 
					
						
							|  |  |  |         if (isInRect) { | 
					
						
							| 
									
										
										
										
											2024-12-13 22:28:47 +08:00
										 |  |  |             //遍历父对象中的所有按钮 还原其他按钮 | 
					
						
							|  |  |  |             foreach(Button in Parent.SettingBackgroundButtonList) { | 
					
						
							|  |  |  |                 Button.SelectMask.SetVisible(false); | 
					
						
							|  |  |  |                 Button.SelectFlag = false; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             //设置自身选中状态 | 
					
						
							| 
									
										
										
										
											2024-12-13 20:51:41 +08:00
										 |  |  |             SelectMask.SetVisible(true); | 
					
						
							|  |  |  |             SelectFlag = true; | 
					
						
							| 
									
										
										
										
											2024-12-13 22:28:47 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |             Parent.Parent.ChangeBackground(Idx); | 
					
						
							| 
									
										
										
										
											2024-12-13 20:51:41 +08:00
										 |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | class _Select_Character_SettingBackground_Window extends Yosin_Window { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //是否为独立窗口 | 
					
						
							|  |  |  |     IsIndependent = false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //是否可见 | 
					
						
							|  |  |  |     Visible = false; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-13 22:28:47 +08:00
										 |  |  |     //选择背景按钮集合 | 
					
						
							|  |  |  |     SettingBackgroundButtonList = null; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-14 11:14:20 +08:00
										 |  |  |     Background = null; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-13 20:51:41 +08:00
										 |  |  |     constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) { | 
					
						
							|  |  |  |         base.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH); | 
					
						
							| 
									
										
										
										
											2024-12-13 22:28:47 +08:00
										 |  |  |         SettingBackgroundButtonList = []; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-14 11:14:20 +08:00
										 |  |  |         // SetClipRect(-gWidth, 0, gWidth, gHeight + 20); | 
					
						
							|  |  |  |         // SetClipRect(0, 0, 1066, 600); | 
					
						
							| 
									
										
										
										
											2024-12-13 22:28:47 +08:00
										 |  |  |         // ShowBorder(true); | 
					
						
							|  |  |  |         // SetLayerOpacity(1); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2024-12-13 20:51:41 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-13 22:28:47 +08:00
										 |  |  |     function Init() { | 
					
						
							| 
									
										
										
										
											2024-12-13 20:51:41 +08:00
										 |  |  |         //注册绘制 | 
					
						
							|  |  |  |         RegisterDraw(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function RegisterDraw() { | 
					
						
							|  |  |  |         //背景 | 
					
						
							| 
									
										
										
										
											2024-12-14 11:14:20 +08:00
										 |  |  |         Background = CL_SpriteObject("sprite/interface2/selectcharacter_ver2/setup/setup.img", 17); | 
					
						
							| 
									
										
										
										
											2024-12-13 20:51:41 +08:00
										 |  |  |         Addchild(Background); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         for (local i = 0; i< 24; i++) { | 
					
						
							| 
									
										
										
										
											2024-12-13 22:28:47 +08:00
										 |  |  |             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) { | 
					
						
							|  |  |  |                 Buf.SelectMask.SetVisible(true); | 
					
						
							|  |  |  |                 Buf.SelectFlag = true; | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2024-12-13 20:51:41 +08:00
										 |  |  |             AddUIChild(Buf); | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //逻辑入口 | 
					
						
							|  |  |  |     function Proc(Dt) { | 
					
						
							|  |  |  |         SyncPos(X, Y); | 
					
						
							|  |  |  |         base.Proc(Dt); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | class _Select_Character_Window extends Yosin_Window { | 
					
						
							|  |  |  |     //调试模式 | 
					
						
							|  |  |  |     // DeBugMode = true; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //不是窗口 | 
					
						
							|  |  |  |     // NoWindow = true; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //是否可见 | 
					
						
							|  |  |  |     // Visible = false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //背景音乐 | 
					
						
							|  |  |  |     BackGroundMusic = null | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //设置背景图片窗口 | 
					
						
							|  |  |  |     SettingBackgroundWindow = null; | 
					
						
							|  |  |  |     //背景图片 | 
					
						
							|  |  |  |     BackGround = null; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //信息 | 
					
						
							|  |  |  |     Info = null; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH) { | 
					
						
							|  |  |  |         base.constructor(gObjectId, gX, gY, gWidth, gHeight, gTitleH); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function Init(gInfo) { | 
					
						
							|  |  |  |         //接收参数信息 | 
					
						
							|  |  |  |         Info = gInfo; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         //注册绘制 | 
					
						
							|  |  |  |         RegisterDraw(); | 
					
						
							|  |  |  |         //注册控件 | 
					
						
							|  |  |  |         RegisterWidget(); | 
					
						
							|  |  |  |         //注册窗口 | 
					
						
							|  |  |  |         RegisterWindow(); | 
					
						
							|  |  |  |         // OpenDeBug(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         //播放音乐 | 
					
						
							|  |  |  |         PlayBackgroundMusic(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function PlayBackgroundMusic() { | 
					
						
							|  |  |  |         // BackGroundMusic = Sound("SoundPacks/Loop.ogg"); | 
					
						
							|  |  |  |         // BackGroundMusic.Play(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function MusicLogic() { | 
					
						
							|  |  |  |         if (BackGroundMusic == null) return; | 
					
						
							|  |  |  |         if (!BackGroundMusic.IsPlaying()) BackGroundMusic.Play(); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function RegisterWindow() { | 
					
						
							|  |  |  |         SettingBackgroundWindow = _Select_Character_SettingBackground_Window("选择角色_设置背景图片窗口", 850, 28, 212, 129, 0); | 
					
						
							|  |  |  |         AddUIChild(SettingBackgroundWindow); | 
					
						
							| 
									
										
										
										
											2024-12-13 22:28:47 +08:00
										 |  |  |         //先添加为子对象 因为子对象需要用到父对象 | 
					
						
							|  |  |  |         SettingBackgroundWindow.Init(); | 
					
						
							| 
									
										
										
										
											2024-12-13 20:51:41 +08:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function RegisterWidget() { | 
					
						
							|  |  |  |         //背景设置按钮 | 
					
						
							|  |  |  |         local SettingButton = Yosin_BaseButton(984, 6, 77, 24 "sprite/interface2/ui/community/guild_2019/guildsetting/guildsetting.img", 29); | 
					
						
							|  |  |  |         //点击事件回调 | 
					
						
							|  |  |  |         SettingButton.OnClick = function(Button) { | 
					
						
							|  |  |  |             SettingBackgroundWindow.SetVisible(!SettingBackgroundWindow.Visible) | 
					
						
							|  |  |  |         }.bindenv(this); | 
					
						
							|  |  |  |         AddUIChild(SettingButton); | 
					
						
							|  |  |  |         //登录按钮文本 | 
					
						
							|  |  |  |         local LoginTextActor = FontAssetManager.GenerateNormal("背景设置", sq_RGBA(221, 197, 147, 255), true); | 
					
						
							|  |  |  |         LoginTextActor.SetPosition(23, 3); | 
					
						
							|  |  |  |         LoginTextActor.SetUpdateFunc(function(Text, Dt) { | 
					
						
							|  |  |  |             if (Text.Parent.State == 1 || Text.Parent.State == 2) { | 
					
						
							|  |  |  |                 Text.SetFillColor(sq_RGBA(255, 255, 184, 255)); | 
					
						
							|  |  |  |             } else if (Text.Parent.State == 0) { | 
					
						
							|  |  |  |                 Text.SetFillColor(sq_RGBA(221, 197, 147, 255)); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         }) | 
					
						
							|  |  |  |         SettingButton.Addchild(LoginTextActor); | 
					
						
							| 
									
										
										
										
											2024-12-14 11:14:20 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // local TestButton = Yosin_ScrollBar(300, 200, 50, 100); | 
					
						
							|  |  |  |         // AddUIChild(TestButton); | 
					
						
							|  |  |  |         // local TestButton = Yosin_SplicingButton(200, 200, 77, 68, "sprite/interface/lenheartwindowcommon.img", 184, false, false); | 
					
						
							|  |  |  |         // TestButton.DownSimulateOffset = false; | 
					
						
							|  |  |  |         local TestButton = Yosin_DragButton(200, 200, 9, 120, "sprite/interface/lenheartwindowcommon.img", 184, false, false); | 
					
						
							|  |  |  |         // TestButton.SetScale(5.0, 5.0); | 
					
						
							|  |  |  |         AddUIChild(TestButton); | 
					
						
							| 
									
										
										
										
											2024-12-13 20:51:41 +08:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-13 22:28:47 +08:00
										 |  |  |     //切换背景 | 
					
						
							|  |  |  |     function ChangeBackground(Idx) { | 
					
						
							|  |  |  |         if (BackGround) { | 
					
						
							|  |  |  |             BackGround.RemoveSelf(); | 
					
						
							|  |  |  |             BackGround = null; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         BackGround = CL_SpriteObject("sprite/interface2/selectcharacter_ver2/background/large/background_large_event.img", Idx); | 
					
						
							|  |  |  |         BackGround.SetZOrder(-10); | 
					
						
							| 
									
										
										
										
											2024-12-14 11:14:20 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         /* | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 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); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         */ | 
					
						
							| 
									
										
										
										
											2024-12-13 22:28:47 +08:00
										 |  |  |         Addchild(BackGround); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-13 20:51:41 +08:00
										 |  |  |     function RegisterDraw() { | 
					
						
							|  |  |  |         //大背景 根据玩家的设定背景决定 | 
					
						
							| 
									
										
										
										
											2024-12-13 22:28:47 +08:00
										 |  |  |         ChangeBackground(Info.Background); | 
					
						
							| 
									
										
										
										
											2024-12-13 20:51:41 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //逻辑入口 | 
					
						
							|  |  |  |     function Proc(Dt) { | 
					
						
							|  |  |  |         MusicLogic(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         SyncPos(X, Y); | 
					
						
							|  |  |  |         base.Proc(Dt); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |