|
- 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
|