|
- local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
-
- local MJPositionCompnent={}
-
-
- --麻将组内坐标计算
- function MJPositionCompnent.getIntragroupPosition(viewId,mj,i,num,desktopType)
- desktopType=desktopType or MJDefine.DesktopType.ThreeD
-
- local MJGroupOffSet=MJDefine.MJGroupOffSet[desktopType]
-
- local mjWidth=mj:getContentSize().width
- local mjHeight=mj:getContentSize().height
- local y=mjHeight/2
- local x=mjWidth/2
-
- --根据视图ID 计算坐标
- if viewId==MJDefine.PlayerViewType.My then
- x=num*(mjWidth-MJGroupOffSet[viewId].x)+mjWidth/2
- -- width=width+mjWidth
- -- height=mj:getContentSize().height
- elseif viewId==MJDefine.PlayerViewType.Left then
- x=x-num*MJGroupOffSet[viewId].x
- y=y+(mjHeight-MJGroupOffSet[viewId].y)*(3-i)
- -- width=mjWidth
- -- height=height+mjHeight
- -- if i<3 then
- -- height=height-MJDefine.MJGroupOffSet[self.viewId].y
- -- end
- elseif viewId==MJDefine.PlayerViewType.Right then
- x=x-num*MJGroupOffSet[viewId].x
- y=y+(mjHeight-MJGroupOffSet[viewId].y)*num
- -- width=mjWidth
- -- height=height+mjHeight
- -- if i<3 then
- -- height=height-MJDefine.MJGroupOffSet[self.viewId].y
- -- end
- mj:setLocalZOrder(3-i)
- elseif viewId==MJDefine.PlayerViewType.Top then
- x=num*(mjWidth-MJGroupOffSet[viewId].x)+mjWidth/2
- -- width=width+mjWidth
- -- height=mj:getContentSize().height
- end
-
- return x,y
- end
-
-
- function MJPositionCompnent.getGroupPosition(viewId,x,y,group,desktopType)
- desktopType=desktopType or MJDefine.DesktopType.ThreeD
- -- local MJGroupStartOffSet = MJDefine.MJGroupStartOffSet[desktopType]
- local MJGroupMarginOffSet = MJDefine.MJGroupMarginOffSet[desktopType]
- -- group:setPosition(cc.p(x+MJGroupStartOffSet[self.viewId].x,y+MJGroupStartOffSet[self.viewId].y))
- --根据视图ID 计算坐标
- if viewId==MJDefine.PlayerViewType.My then
- x=x+group:getContentSize().width+MJGroupMarginOffSet[viewId].x
- elseif viewId==MJDefine.PlayerViewType.Left then
- x=x-MJGroupMarginOffSet[viewId].x
- y=y-group:getContentSize().height-MJGroupMarginOffSet[viewId].y
- elseif viewId==MJDefine.PlayerViewType.Right then
- x=x-MJGroupMarginOffSet[viewId].x
- y=y+group:getContentSize().height+MJGroupMarginOffSet[viewId].y
- elseif viewId==MJDefine.PlayerViewType.Top then
- x=x-group:getContentSize().width-MJGroupMarginOffSet[viewId].x
- end
- return x,y
- end
-
- function MJPositionCompnent.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(-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
- 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
-
- function MJPositionCompnent.getOpenCardPosition(viewId,x,y,mj,num,desktopType)
- desktopType=desktopType or MJDefine.DesktopType.ThreeD
- local MJOutChangeOffSet=MJDefine.MJOutChangeOffSet[desktopType]
- local MJHandCardLeftOffsetX=MJDefine.MJHandCardLeftOffsetX[desktopType]
- local MJGroupWithMJMargin=MJDefine.MJGroupWithMJMargin[desktopType]
- -- local x=initX
- -- local y=initY
- --根据视图ID 计算坐标
- if viewId==MJDefine.PlayerViewType.My then
- x=x+(mj:getContentSize().width-MJOutChangeOffSet[viewId].x)*num
- elseif viewId==MJDefine.PlayerViewType.Left then
- if desktopType==MJDefine.DesktopType.TwoD then
- x=x-MJGroupWithMJMargin[viewId].x
- end
- x=x-MJHandCardLeftOffsetX*num
- y=y-(mj:getContentSize().height-MJOutChangeOffSet[viewId].y)*num
- elseif viewId==MJDefine.PlayerViewType.Right then
- if desktopType==MJDefine.DesktopType.TwoD then
- x=x-MJGroupWithMJMargin[viewId].x
- end
- x=x-MJHandCardLeftOffsetX*num
- y=y+(mj:getContentSize().height-MJOutChangeOffSet[viewId].y)*num
- mj:setLocalZOrder(720-y)
- 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)*num
- end
-
- return x,y
- end
-
- function MJPositionCompnent.getHandCardPosition(viewId,x,y,mj,num,desktopType)
- -- local x=initX
- -- local y=initY
- desktopType=desktopType or MJDefine.DesktopType.ThreeD
- local MJHandCardLeftOffsetX=MJDefine.MJHandCardLeftOffsetX[desktopType]
- local MJHandCardRightOffsetX=MJDefine.MJHandCardRightOffsetX[desktopType]
- local MJ_HAND_CARD_LEFT_PADDING_HEIGHT = MJDefine.MJ_HAND_CARD_LEFT_PADDING_HEIGHT[desktopType]
- --根据视图ID 计算坐标
- if viewId==MJDefine.PlayerViewType.My then
- x=x+num*mj:getContentSize().width
- elseif viewId==MJDefine.PlayerViewType.Left then
- x=x-MJHandCardLeftOffsetX*num
- y=y-MJ_HAND_CARD_LEFT_PADDING_HEIGHT*num
- mj:setLocalZOrder(num)
- elseif viewId==MJDefine.PlayerViewType.Right then
- x=x-MJHandCardRightOffsetX*num
- y=y+MJ_HAND_CARD_LEFT_PADDING_HEIGHT*num
- mj:setLocalZOrder(MJDefine.MJ_MAX_ZORDER-num)
- elseif viewId==MJDefine.PlayerViewType.Top then
- x=x-mj:getContentSize().width*num+MJDefine.MJ_HAND_CARD_TOP_OFFSET_X*num
- end
- return x,y
- end
-
-
- return MJPositionCompnent
|