local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine") local linshuiPositionCompnent=MJFramework.MJFrameworkClassImprot("mj.luaScript.Views.Compnent.MJPositionCompnent") function linshuiPositionCompnent.getOutCardPosition(viewId,x,y,mj,num,desktopType,playerCount) desktopType=desktopType or MJDefine.DesktopType.ThreeD local MJChangeLinCount = MJDefine.MJChangeLinCount[desktopType][playerCount] local MJOutChangeOffSet = MJDefine.MJOutChangeOffSet[desktopType] local MJOutOffSet = MJDefine.MJOutOffSet[desktopType] --取余计算X坐标 从起始位置开始 默认应该为0 所以要减去1 local n=num%MJChangeLinCount[viewId]-1 --向下取整判断是否换行 local m=math.floor(num/MJChangeLinCount[viewId]) --如果刚好等于0则设置为换行的数 if num%MJChangeLinCount[viewId]==0 then n=MJChangeLinCount[viewId]-1 m=m-1 end --根据视图ID 计算坐标 if viewId==MJDefine.PlayerViewType.My then x=x+(mj:getContentSize().width-MJOutChangeOffSet[viewId].x)*n y=y+m*(mj:getContentSize().height-MJOutChangeOffSet[viewId].y) mj:setLocalZOrder(120-num) elseif viewId==MJDefine.PlayerViewType.Left then x=x+m*(mj:getContentSize().width-MJOutChangeOffSet[viewId].x)-n*MJOutOffSet[viewId].x y=y-(mj:getContentSize().height-MJOutChangeOffSet[viewId].y)*n mj:setLocalZOrder(n-m) elseif viewId==MJDefine.PlayerViewType.Right then x=x-m*(mj:getContentSize().width-MJOutChangeOffSet[viewId].x)-n*MJOutOffSet[viewId].x y=y+(mj:getContentSize().height-MJOutChangeOffSet[viewId].y)*n mj:setLocalZOrder(-m-n) elseif viewId==MJDefine.PlayerViewType.Top then -- local scale=0.8 --上面的麻将要缩小 mj:setScale(MJDefine.MJ_TOP_SCALE) x=x-(mj:getContentSize().width*MJDefine.MJ_TOP_SCALE-MJOutChangeOffSet[viewId].x)*n y=y-m*(mj:getContentSize().height*MJDefine.MJ_TOP_SCALE-MJOutChangeOffSet[viewId].y) mj:setLocalZOrder(720-y) end return x,y end return linshuiPositionCompnent