64 lines
2.4 KiB
Plaintext
64 lines
2.4 KiB
Plaintext
/*
|
|
文件名: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);
|
|
}
|
|
}
|