96 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
		
		
			
		
	
	
			96 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
								 | 
							
								/*
							 | 
						||
| 
								 | 
							
								文件名:ItemCollect.nut
							 | 
						||
| 
								 | 
							
								路径:User/UI/Window/5_Inventory/ItemCollect.nut
							 | 
						||
| 
								 | 
							
								创建日期:2025-01-06	13:50
							 | 
						||
| 
								 | 
							
								文件用途: 物品栏
							 | 
						||
| 
								 | 
							
								*/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// 物品栏
							 | 
						||
| 
								 | 
							
								class itemCollection extends Yosin_CommonUi{
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // 行
							 | 
						||
| 
								 | 
							
								    column = null;
							 | 
						||
| 
								 | 
							
								    // 列
							 | 
						||
| 
								 | 
							
								    row = null;
							 | 
						||
| 
								 | 
							
								    items = null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // 悬浮时显示的框
							 | 
						||
| 
								 | 
							
								    rect = null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    columnNum = null;
							 | 
						||
| 
								 | 
							
								    rowNum = null;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    constructor(x, y, w, h, columnNum,rowNum ) {
							 | 
						||
| 
								 | 
							
								        base.constructor(x, y, w, h);
							 | 
						||
| 
								 | 
							
								        this.columnNum = columnNum;
							 | 
						||
| 
								 | 
							
								        this.rowNum = rowNum;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        items = [];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        local background = Yosin_NineBoxStretch(-3, -3, w + 6, h + 6, "sprite/interface/lenheartwindowcommon.img", 97);
							 | 
						||
| 
								 | 
							
								        AddUIChild(background);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        local itemX = 4;
							 | 
						||
| 
								 | 
							
								        local itemY = 3;
							 | 
						||
| 
								 | 
							
								        for (local i =  0; i < columnNum; i++) {
							 | 
						||
| 
								 | 
							
								            local cells = [];
							 | 
						||
| 
								 | 
							
								            for (local i =  0; i < rowNum; i++) {
							 | 
						||
| 
								 | 
							
								                local bg = CL_SpriteObject("sprite/interface/newstyle/windows/inventory/inventory.img", 49);
							 | 
						||
| 
								 | 
							
								                bg.SetPosition(itemX, itemY);
							 | 
						||
| 
								 | 
							
								                Addchild(bg);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                itemX += 30;
							 | 
						||
| 
								 | 
							
								                cells.push(bg);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            items.push(cells);
							 | 
						||
| 
								 | 
							
								            itemX = 3;
							 | 
						||
| 
								 | 
							
								            itemY += 30;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        rect = CL_SpriteObject("sprite/interface/newstyle/windows/inventory/inventory.img", 131);
							 | 
						||
| 
								 | 
							
								        rect.SetVisible(false);
							 | 
						||
| 
								 | 
							
								        Addchild(rect);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    //override
							 | 
						||
| 
								 | 
							
								    //鼠标事件回调
							 | 
						||
| 
								 | 
							
								    function OnMouseProc(MousePos_X, MousePos_Y) {
							 | 
						||
| 
								 | 
							
								        base.OnMouseProc(MousePos_X, MousePos_Y);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (isInRect){
							 | 
						||
| 
								 | 
							
								            local WorldPosition = this.GetWorldPosition();
							 | 
						||
| 
								 | 
							
								            local xx = MousePos_X - WorldPosition.x;
							 | 
						||
| 
								 | 
							
								            local yy = MousePos_Y - WorldPosition.y;
							 | 
						||
| 
								 | 
							
								            local column = (yy / 30).tointeger();
							 | 
						||
| 
								 | 
							
								            local row = (xx / 30).tointeger();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            local inRadius = column < columnNum && row < rowNum;
							 | 
						||
| 
								 | 
							
								            local change = column != this.column || row != this.row;
							 | 
						||
| 
								 | 
							
								            // 移动到另一个槽
							 | 
						||
| 
								 | 
							
								            if ( change && inRadius) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                this.column = column;
							 | 
						||
| 
								 | 
							
								                this.row = row;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								                rect.SetVisible(true);
							 | 
						||
| 
								 | 
							
								                rect.SetPosition( row * 30, column * 30);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        }else{
							 | 
						||
| 
								 | 
							
								            this.column = null;
							 | 
						||
| 
								 | 
							
								            this.row = null;
							 | 
						||
| 
								 | 
							
								            rect.SetVisible(false);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								}
							 |