/* 文件名:NineGridCav.nut 路径:UI/Windows/Widget/NineGridCav.nut 创建日期:2025-10-25 00:35 文件用途:九宫格画布 */ class GameWidget_NineGridCav extends Canvas { /** * * @function * @param {string} ImgPath Img路径 * @param {integer} ImgStart Img起始索引 * @param {integer} Width 总宽度 * @param {integer} Height 总高度 * @returns {gamewidget_ninegridcav} */ constructor(ImgPath, ImgStart, Width, Height) { //获取九宫格各部分原始尺寸 local topLeft = sq_GetPng(ImgPath, ImgStart); local topMid = sq_GetPng(ImgPath, ImgStart + 1); local topRight = sq_GetPng(ImgPath, ImgStart + 2); local midLeft = sq_GetPng(ImgPath, ImgStart + 3); local midMid = sq_GetPng(ImgPath, ImgStart + 4); local midRight = sq_GetPng(ImgPath, ImgStart + 5); local bottomLeft = sq_GetPng(ImgPath, ImgStart + 6); local bottomMid = sq_GetPng(ImgPath, ImgStart + 7); local bottomRight = sq_GetPng(ImgPath, ImgStart + 8); //初始化画布尺寸 base.constructor(Width, Height); //计算中间拉伸区域尺寸 local midWidth = Width - topLeft.Width - topRight.Width; local midHeight = Height - topLeft.Height - bottomLeft.Height; //绘制左上角 DrawImg(ImgPath, ImgStart, 0, 0); //绘制上中(横向拉伸) DrawImgRect(ImgPath, ImgStart + 1, topLeft.Width, 0, midWidth, topMid.Height); //绘制右上角 DrawImg(ImgPath, ImgStart + 2, Width - topRight.Width, 0); //绘制左中(纵向拉伸) DrawImgRect(ImgPath, ImgStart + 3, 0, topLeft.Height, midLeft.Width, midHeight); //绘制中间(双向拉伸) DrawImgRect(ImgPath, ImgStart + 4, topLeft.Width, topLeft.Height, midWidth, midHeight); //绘制右中(纵向拉伸) DrawImgRect(ImgPath, ImgStart + 5, Width - midRight.Width, topLeft.Height, midRight.Width, midHeight); //绘制左下角 DrawImg(ImgPath, ImgStart + 6, 0, Height - bottomLeft.Height); //绘制下中(横向拉伸) DrawImgRect(ImgPath, ImgStart + 7, topLeft.Width, Height - bottomMid.Height, midWidth, bottomMid.Height); //绘制右下角 DrawImg(ImgPath, ImgStart + 8, Width - bottomRight.Width, Height - bottomRight.Height); } }