You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.9 KiB

  1. local MJDefine=MJFramework.MJImport("mj.luaScript.MJDefine")
  2. local linshuiPositionCompnent=MJFramework.MJFrameworkClassImprot("mj.luaScript.Views.Compnent.MJPositionCompnent")
  3. function linshuiPositionCompnent.getOutCardPosition(viewId,x,y,mj,num,desktopType,playerCount)
  4. desktopType=desktopType or MJDefine.DesktopType.ThreeD
  5. local MJChangeLinCount = MJDefine.MJChangeLinCount[desktopType][playerCount]
  6. local MJOutChangeOffSet = MJDefine.MJOutChangeOffSet[desktopType]
  7. local MJOutOffSet = MJDefine.MJOutOffSet[desktopType]
  8. --取余计算X坐标 从起始位置开始 默认应该为0 所以要减去1
  9. local n=num%MJChangeLinCount[viewId]-1
  10. --向下取整判断是否换行
  11. local m=math.floor(num/MJChangeLinCount[viewId])
  12. --如果刚好等于0则设置为换行的数
  13. if num%MJChangeLinCount[viewId]==0 then
  14. n=MJChangeLinCount[viewId]-1
  15. m=m-1
  16. end
  17. --根据视图ID 计算坐标
  18. if viewId==MJDefine.PlayerViewType.My then
  19. x=x+(mj:getContentSize().width-MJOutChangeOffSet[viewId].x)*n
  20. y=y+m*(mj:getContentSize().height-MJOutChangeOffSet[viewId].y)
  21. mj:setLocalZOrder(120-num)
  22. elseif viewId==MJDefine.PlayerViewType.Left then
  23. x=x+m*(mj:getContentSize().width-MJOutChangeOffSet[viewId].x)-n*MJOutOffSet[viewId].x
  24. y=y-(mj:getContentSize().height-MJOutChangeOffSet[viewId].y)*n
  25. mj:setLocalZOrder(n-m)
  26. elseif viewId==MJDefine.PlayerViewType.Right then
  27. x=x-m*(mj:getContentSize().width-MJOutChangeOffSet[viewId].x)-n*MJOutOffSet[viewId].x
  28. y=y+(mj:getContentSize().height-MJOutChangeOffSet[viewId].y)*n
  29. mj:setLocalZOrder(-m-n)
  30. elseif viewId==MJDefine.PlayerViewType.Top then
  31. -- local scale=0.8 --上面的麻将要缩小
  32. mj:setScale(MJDefine.MJ_TOP_SCALE)
  33. x=x-(mj:getContentSize().width*MJDefine.MJ_TOP_SCALE-MJOutChangeOffSet[viewId].x)*n
  34. y=y-m*(mj:getContentSize().height*MJDefine.MJ_TOP_SCALE-MJOutChangeOffSet[viewId].y)
  35. mj:setLocalZOrder(720-y)
  36. end
  37. return x,y
  38. end
  39. return linshuiPositionCompnent