local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine") local huamajiangPositionCompnent = require("mj.luaScript.Views.Compnent.MJPositionCompnent") function huamajiangPositionCompnent.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 local m1 = 0 --大于2行牌则叠加 if playerCount == 2 then m = m%2 m1=math.ceil(num/(MJChangeLinCount[viewId]*2)) - 1 elseif playerCount == 3 or playerCount == 4 then if viewId==MJDefine.PlayerViewType.My or viewId==MJDefine.PlayerViewType.Top then m = m%2 m1=math.ceil(num/(MJChangeLinCount[viewId]*2)) - 1 else m = m%3 m1=math.ceil(num/(MJChangeLinCount[viewId]*3)) - 1 end 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) y=y+12*m1 mj:setLocalZOrder(-1) 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 y=y+15*m1 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 y=y+15*m1 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) y=y+12*m1 mj:setLocalZOrder(720-y + m1*720) end return x,y end return huamajiangPositionCompnent