| 
									
										
										
										
											2024-12-14 22:22:42 +08:00
										 |  |  | /* | 
					
						
							|  |  |  | 文件名:233_HUD_Message.nut | 
					
						
							|  |  |  | 路径:User/UI/Window/233_HUD_Message.nut | 
					
						
							|  |  |  | 创建日期:2024-12-14	08:10 | 
					
						
							|  |  |  | 文件用途: 公告或信息弹窗 | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-15 23:43:24 +08:00
										 |  |  | class _Yosin_MessageBox extends Yosin_Window { | 
					
						
							| 
									
										
										
										
											2024-12-14 22:22:42 +08:00
										 |  |  |     //调试模式 | 
					
						
							|  |  |  |     // DeBugMode = true; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //不是窗口 | 
					
						
							|  |  |  |     // NoWindow = true; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //是否可见 | 
					
						
							|  |  |  |     // Visible = false; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     BackGroundMusic = null; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     cacheW = 230; | 
					
						
							|  |  |  |     cacheH = 155; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     titleTextActor = null; | 
					
						
							|  |  |  |     messageTextActor = null; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-15 23:43:24 +08:00
										 |  |  |     constructor(message, gX = 418, gY = 200, info = { | 
					
						
							| 
									
										
										
										
											2024-12-14 22:22:42 +08:00
										 |  |  |         // 标题 | 
					
						
							|  |  |  |         title = "公告", | 
					
						
							|  |  |  |         // 水平边距 | 
					
						
							|  |  |  |         horizontalMargin = 20, | 
					
						
							|  |  |  |         // 垂直边距 | 
					
						
							|  |  |  |         verticalMargin = 20, | 
					
						
							| 
									
										
										
										
											2024-12-15 20:15:29 +08:00
										 |  |  |     }) { | 
					
						
							| 
									
										
										
										
											2024-12-14 22:22:42 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-15 20:15:29 +08:00
										 |  |  |         local title = info.rawin("title") ? info.title : "公告"; | 
					
						
							|  |  |  |         local horizontalMargin = info.rawin("horizontalMargin") ? info.horizontalMargin : 20; | 
					
						
							| 
									
										
										
										
											2024-12-14 22:22:42 +08:00
										 |  |  |         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; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // 默认构造数据 | 
					
						
							| 
									
										
										
										
											2024-12-15 23:43:24 +08:00
										 |  |  |         base.constructor("公告或信息弹窗" + clock().tostring(), gX ? gX : 418, gY ? gY : 200, cacheW, cacheH, 20); | 
					
						
							| 
									
										
										
										
											2024-12-14 22:22:42 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         //注册控件 | 
					
						
							|  |  |  |         RegisterWidget(); | 
					
						
							|  |  |  |         //注册绘制 | 
					
						
							|  |  |  |         RegisterDraw(); | 
					
						
							| 
									
										
										
										
											2024-12-15 20:15:29 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         ResetFocus(); | 
					
						
							| 
									
										
										
										
											2024-12-14 22:22:42 +08:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function RegisterWidget() { | 
					
						
							| 
									
										
										
										
											2025-01-11 01:27:48 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-14 22:22:42 +08:00
										 |  |  |         //背景 | 
					
						
							| 
									
										
										
										
											2025-01-11 01:27:48 +08:00
										 |  |  |         local background = Yosin_NineBoxStretch( cacheW + 1, cacheH, "sprite/interface/lenheartwindowcommon.img", 97); | 
					
						
							|  |  |  |         background.SetPosition(-1, 15); | 
					
						
							| 
									
										
										
										
											2025-01-10 23:05:50 +08:00
										 |  |  |         Addchild(background); | 
					
						
							| 
									
										
										
										
											2025-01-11 01:27:48 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         //文字背景 | 
					
						
							|  |  |  |         local twoBackground = Yosin_NineBoxStretch( cacheW - 8, cacheH - 36, "sprite/interface/lenheartwindowcommon.img", 97); | 
					
						
							|  |  |  |         twoBackground.SetPosition(4, 20); | 
					
						
							| 
									
										
										
										
											2025-01-10 23:05:50 +08:00
										 |  |  |         Addchild(twoBackground); | 
					
						
							| 
									
										
										
										
											2024-12-14 22:22:42 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |         // 绘制标题背景 | 
					
						
							|  |  |  |         local titleBackground = Yosin_EmeStretch(0, 0, cacheW, 20, "sprite/interface/lenheartwindowcommon.img", 609); | 
					
						
							| 
									
										
										
										
											2025-01-11 01:27:48 +08:00
										 |  |  |         titleBackground.SetScale(1, 1.2); | 
					
						
							| 
									
										
										
										
											2024-12-14 22:22:42 +08:00
										 |  |  |         AddUIChild(titleBackground); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-11 01:27:48 +08:00
										 |  |  |         // 标题背景光 | 
					
						
							| 
									
										
										
										
											2024-12-27 15:29:08 +08:00
										 |  |  |         local BackgroundBright = CL_SpriteObject("sprite/interface/lenheartwindowcommon.img", 483); | 
					
						
							| 
									
										
										
										
											2025-01-11 01:27:48 +08:00
										 |  |  |         local BackgroundBrightSize = BackgroundBright.GetSize(); | 
					
						
							|  |  |  |         local scaleW = (cacheW / BackgroundBrightSize.w).tofloat(); | 
					
						
							| 
									
										
										
										
											2025-01-10 23:05:50 +08:00
										 |  |  |         BackgroundBright.SetScale(scaleW, 1); | 
					
						
							| 
									
										
										
										
											2025-01-11 01:27:48 +08:00
										 |  |  |         BackgroundBright.SetPosition( 0, 1); | 
					
						
							| 
									
										
										
										
											2024-12-27 15:29:08 +08:00
										 |  |  |         Addchild(BackgroundBright); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-14 22:22:42 +08:00
										 |  |  |         //确认按钮 | 
					
						
							| 
									
										
										
										
											2024-12-15 20:15:29 +08:00
										 |  |  |         local confirmButton = Yosin_BaseButton(cacheW / 2 - 28, cacheH - 15, 56, 24 "sprite/interface/lenheartwindowcommon.img", 12); | 
					
						
							| 
									
										
										
										
											2024-12-14 22:22:42 +08:00
										 |  |  |         confirmButton.OnClick = function(Button) { | 
					
						
							| 
									
										
										
										
											2024-12-15 20:15:29 +08:00
										 |  |  |             //关闭本窗口 | 
					
						
							| 
									
										
										
										
											2024-12-19 23:55:34 +08:00
										 |  |  |             DestroyWindow(); | 
					
						
							| 
									
										
										
										
											2024-12-14 22:22:42 +08:00
										 |  |  |         }.bindenv(this); | 
					
						
							|  |  |  |         AddUIChild(confirmButton); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // 绘制标题 | 
					
						
							|  |  |  |         local confirmTextActor = FontAssetManager.GenerateNormal("确认", sq_RGBA(206, 189, 140, 255), true); | 
					
						
							|  |  |  |         confirmTextActor.SetPosition(17, 6); | 
					
						
							|  |  |  |         confirmButton.Addchild(confirmTextActor); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         //关闭按钮 | 
					
						
							| 
									
										
										
										
											2024-12-15 20:15:29 +08:00
										 |  |  |         local closeButton = Yosin_BaseButton(cacheW - 15, 5, 10, 9 "sprite/interface/lenheartwindowcommon.img", 42); | 
					
						
							| 
									
										
										
										
											2024-12-14 22:22:42 +08:00
										 |  |  |         closeButton.OnClick = function(Button) { | 
					
						
							| 
									
										
										
										
											2024-12-15 20:15:29 +08:00
										 |  |  |             //关闭本窗口 | 
					
						
							| 
									
										
										
										
											2024-12-19 23:55:34 +08:00
										 |  |  |             DestroyWindow(); | 
					
						
							| 
									
										
										
										
											2024-12-14 22:22:42 +08:00
										 |  |  |         }.bindenv(this); | 
					
						
							|  |  |  |         AddUIChild(closeButton); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     function RegisterDraw() { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         local titleX = cacheW / 2 - titleTextActor.GetSize().w / 2; | 
					
						
							|  |  |  |         // 绘制标题 | 
					
						
							| 
									
										
										
										
											2024-12-15 20:15:29 +08:00
										 |  |  |         titleTextActor.SetPosition(titleX, 2); | 
					
						
							| 
									
										
										
										
											2024-12-14 22:22:42 +08:00
										 |  |  |         Addchild(titleTextActor); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         local messageX = cacheW / 2 - messageTextActor.GetSize().w / 2; | 
					
						
							|  |  |  |         local messageY = cacheH / 2 - messageTextActor.GetSize().h / 2; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         // 绘制内容 | 
					
						
							| 
									
										
										
										
											2024-12-15 20:15:29 +08:00
										 |  |  |         messageTextActor.SetPosition(messageX, messageY); | 
					
						
							| 
									
										
										
										
											2024-12-14 22:22:42 +08:00
										 |  |  |         Addchild(messageTextActor); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     //逻辑入口 | 
					
						
							|  |  |  |     function Proc(Dt) { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         SyncPos(X, Y); | 
					
						
							|  |  |  |         base.Proc(Dt); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |